Skip to main content
 首页 » 编程设计

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

2024年10月24日37lautakyan007

我创建了一个 RegEx 模式来查找带有 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.+ 并重新 lib。

请您参考如下方法:

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

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

我怀疑验证规则与字符(\s 或 ,)和非字符 ^ 作斗争对于行的开头,即使它是正确的,也不允许它在后视内交替出现。