当引擎在regex模式中找到第一个备选方案时,我遇到了一个问题,它停止分析右侧进一步的字符串位置。例如,我有以下示例:
在字符串ABC SCHOOL FOUNDATION COOPERATIVE PARTNERSHIP
中,我希望将['foundation cooperative partnership']
作为匹配项。但是,我得到了['foundation', 'cooperative']
,因为引擎找到了foundation
,然后继续使用同样匹配的单词cooperative
。我正在使用以下代码:
import re
name='ABC SCHOOL FOUNDATION COOPERATIVE PARTNERSHIP'
regex='(community contribution company|foundation cooperative partnership|cooperative|foundation)(?=\s)'
found= re.findall(regex, name.lower())
print(found)
我如何让正则表达式在分析FOUNDATION
之后继续使用下一个单词COOPERATIVE PARTNERSHIP
,而不是在分别查找foundation
和cooperative
时放弃
再次感谢
将
(?=\s)
更改为\b
以匹配单词边界。字符串的末尾没有空格,因此当它尝试匹配整个字符串时,前瞻失败而且几乎总是对正则表达式使用原始字符串,这样regexp转义序列就不会作为字符串转义序列处理
相关问题 更多 >
编程相关推荐