Python正则表达式匹配一个特定的单词

我想匹配测试报告中的所有行,其中包含单词'Not Ok'。 示例文本行:

'Test result 1: Not Ok -31.08'

我试过这个:

filter1 = re.compile("Not Ok")
for line in myfile:                                     
    if filter1.match(line): 
       print line

它应该按照http://rubular.com/来工作,但我在输出中什么都没有得到。 任何想法,可能是错误的? 测试了各种其他参数,如“。” 和“^测试”,完美的工作。


你应该在这里使用re.search而不是re.match

来自re.match的文档:

如果您想在字符串中的任何位置找到匹配项,请改用search()。

如果您正在查找确切的单词'Not Ok'则使用b单词边界,否则如果您只查找子字符串'Not Ok'则使用简单的: if 'Not Ok' in string

>>> strs = 'Test result 1: Not Ok -31.08'
>>> re.search(r'bNot Okb',strs).group(0)
'Not Ok'
>>> match = re.search(r'bNot Okb',strs)
>>> if match:
...     print "Found"
... else:
...     print "Not Found"
...     
Found

你可以简单地使用,

if <keyword> in str:
    print('Found keyword')

例:

if 'Not Ok' in input_string:
    print('Found string')
链接地址: http://www.djcxy.com/p/13451.html

上一篇: Python regex to match a specific word

下一篇: regex for matching something if it is not preceded by something else