我有以下情况:
1)car is on fire
2)found fire crews on scene
我希望在关键字"工作人员"不存在。换句话说,我想1)返回" fire",并且2)什么也不返回。
regex = re.compile(r'\bfire (?!crews)\b')
但未能匹配"汽车着火了#34;由于火灾后失去了空间。
提前致谢。
答案 0 :(得分:2)
你的正则表达式是,
\bfire\b(?!.*\bcrews\b)
如果你想打印整行,你的正则表达式就是,
.*\bfire\b(?!.*\bcrews\b).*
Python代码,
>>> import re
>>> data = """car is on fire
... found fire crews on scene"""
>>> m = re.search(r'\bfire\b(?!.*\bcrews\b)', data, re.M)
>>> m.group()
'fire'
>>> m = re.search(r'.*\bfire\b(?!.*\bcrews\b).*', data, re.M)
>>> m.group()
'car is on fire'
答案 1 :(得分:1)
你在这里不需要正则表达式。您只需使用in
关键字检查:
if "fire" in line and "crews" not in line:
print("fire")