您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python正则表达式可在任何地方匹配多个单词

Python正则表达式可在任何地方匹配多个单词

您在那里遇到了一些问题。

首先,匹配项区分大小写,除非您使用IGNORECASE/I标志忽略大小写。因此,'AND'不匹配'and'

另外,除非使用VERBOSE/X标志,否则这些空格是模式的一部分。因此,您正在检查'AND ',而不是'AND'。如果需要,您可能希望在每一侧都留空格,而不仅是在那边(否则,'band leader'将要匹配…),而且实际上,您可能会想要\b,而不是空格(否则以开头的句子'And another thing'将不匹配) 。

最后,如果你认为你需要.*前,你的模式后$,并^围绕它,还有你想使用一个很好的机会searchfindall或者finditer,而不是match

所以:

>>> s = "These are oranges and apples and pears, but not pinapples or .."
>>> r = re.compile(r'\bAND\b | \bOR\b | \bNOT\b', flags=re.I | re.X)
>>> r.findall(s)
['and', 'and', 'not', 'or']

正则表达式可视化

Debuggex演示

python 2022/1/1 18:38:06 有428人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶