首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python匹配世界,但排除某些短语

Python匹配世界,但排除某些短语
EN

Stack Overflow用户
提问于 2014-07-26 13:36:41
回答 2查看 95关注 0票数 1

我得到了以下场景:

代码语言:javascript
运行
复制
1)car is on fire
2)found fire crews on scene

我想匹配火灾时,关键字“船员”不存在。换句话说,我希望1)返回"fire",2)什么也不返回。

代码语言:javascript
运行
复制
regex = re.compile(r'\bfire (?!crews)\b')

但由于火灾后缺少空间,它未能与“汽车着火”相匹配。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-26 13:40:26

你的判断力是,

代码语言:javascript
运行
复制
\bfire\b(?!.*\bcrews\b)

演示

如果你想打印整条线,那么你的正则表达式就是,

代码语言:javascript
运行
复制
.*\bfire\b(?!.*\bcrews\b).*

Python代码,

代码语言:javascript
运行
复制
>>> 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'
票数 2
EN

Stack Overflow用户

发布于 2014-07-26 13:43:28

你不需要这里的审判。您只需检查in关键字:

代码语言:javascript
运行
复制
if "fire" in line and "crews" not in line:
    print("fire")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24971579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档