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