正向超前AND和{e = <3}的正则表达式模糊搜索的问题

问题描述

我对Python正则表达式模糊搜索有疑问。

这有效:

import regex
s = '2991  Nixon Avenue Chattanooga Tennessee'
regex.search(r"(?msi)(?=.*\bnixon\b)(?=.*\bchattanooga\b)",s)

这不起作用(从t删除Chattanooga):结果None

import regex
s = '2991  Nixon Avenue Chatanooga Tennessee'
regex.search(r"(?msie)(?=.*\bnixon\b)(?=.*\bchattanooga\b){e=<3}",s)

在这里做什么错了?
看起来好像是正面的前瞻性和单词边界。

注意:这只是使其工作的简单示例。我现实是更复杂的工作的一部分。

此外,我是否需要为每个正则表达式项(nixonchattanooga)指定模糊性,还是可以同时针对两者进行设置? ((?=.*\bnixon)(?=.*\bchattanooga\b)){e=<3}

解决方法

我将模糊性应用到前瞻本身而不是应用 内容。

如果“ Chattanooga”模糊,请执行以下操作:

regex.search(r"(?msie)(?=.*\bnixon\b)(?=.*\b(?:chattanooga){e<=3}\b)",s)