我创建了一个正则表达式模式来查找带有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
或,
)与非字符^
进行战斗,并且不允许它在后视中交替,即使它是正确的。