gpt4 book ai didi

python - 如果不是之前和之后的正则表达式匹配

转载 作者:太空狗 更新时间:2023-10-30 00:56:05 24 4
gpt4 key购买 nike

如果不是 'honeysuckle' 的一部分,如何才能匹配 'suck'?

使用 lookbehind 和 lookahead 我可以匹配 suck if not 'honeysuck' 或 'suckle',但它也无法捕获像 'honeysucker' 这样的东西;这里的表达式应该匹配,因为它不以le结尾:

re.search(r'(?<!honey)suck(?!le)', 'honeysucker')

最佳答案

您需要嵌套环视断言:

>>> import re
>>> regex = re.compile(r"(?<!honey(?=suckle))suck")
>>> regex.search("honeysuckle")
>>> regex.search("honeysucker")
<_sre.SRE_Match object at 0x00000000029B6370>
>>> regex.search("suckle")
<_sre.SRE_Match object at 0x00000000029B63D8>
>>> regex.search("suck")
<_sre.SRE_Match object at 0x00000000029B6370>

等效的解决方案是 suck(?!(?<=honeysuck)le) .

关于python - 如果不是之前和之后的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21824167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com