【发布时间】:2013-06-10 00:29:02
【问题描述】:
我想匹配测试报告中包含“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/ 工作,但我在输出中一无所获。任何想法,可能有什么问题?测试了各种其他参数,例如“。”和 "^Test" ,它们工作得很好。
【问题讨论】:
-
如果它是一个特定的字符串,为什么要使用正则表达式?为什么不
if "Not Ok" in line:? -
顺便说一句,
re.match()只匹配字符串的开头。 -
我确信 match 不仅可以做字符串的开头.. $ 不应该匹配行尾吗?
-
也许我不清楚:
re.match("a")与re.search("^a")相同。re.match("Not Ok")将为"Not Ok Joe!"返回True,为"It's Not Ok!"返回False。 -
啊,我明白了。从 Python 文档中不是很清楚。每天学习新东西!