正则表达式模式中的"^"出错



我创建了一个正则表达式模式来查找带有re.compile的令牌,但遇到了错误。

error("look-behind requires fixed-width pattern")

我的模式是:(?<=[s,]|^)(?:[.*]|[A-Za-z]+|[0-9a-fA-F]+)(?=[s,]|$)错误来自(?<=[s,]|^),可能来自|^.但我试过 regex101.com 它有效。我的(?=[s,]|$)工作和(?<=[s,]|^)几乎相同,所以我真的不明白什么是坏的。

我使用 python 3.+ 和 re lib。

向后看(?<=)和展望 (?=)不一样,后看不能有量词+*?因为它们需要固定大小(您的错误消息)。但是你的交替应该按原样工作。

这种情况的解决方法是像这样交替查看:(?:(?<=[s,])|(?<=^))使每个回溯都有自己的大小。

我怀疑验证规则在行首时与字符(s,)与非字符^进行战斗,并且不允许它在后视中交替,即使它是正确的。

最新更新