我有以下场景:
1) car on the right shoulder
2) car on the left shoulder
3) car on the shoulder
当左右不存在时,我想匹配“肩”。所以只有3)返回“肩膀”
re.compile(r'(?<!right|right\s*)shoulder')
sre_constants.error: look-behind requires fixed-width pattern
好像我不能用\s*和“”
我怎么解决这个问题。
事先谢谢!
最佳答案
regex
module:variable width lookback
除了answer by HamZa,对于python中任何复杂的regex,我建议使用杰出的regex
module by Matthew Barnett。它支持无限的looknehind,这是少数几个这样做的引擎之一,以及.NET和JGSoft。
这允许您执行以下操作:
import regex
if regex.search("(?<!right |left )shoulder", "left shoulder"):
print("It matches!")
else:
print("Nah... No match.")
如果您愿意,也可以使用
\s+
。输出:
It matches!
关于python - Python中的可变宽度Lookbehind问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24987403/