我知道,基于条件,前瞻性断言是匹配的。但突然间,我被这种双重前瞻性的断言所震撼。
>>> a = compile(r'a(?=b)(?=c)')
>>> b = a.findall('abc')
>>> b
[]那么匹配的是什么。提前感谢!
发布于 2018-07-01 08:26:42
您正在匹配a和断言,在a之后,应该有一个b。断言是成功的。
但在此之后,您将断言a之后的应该是一个c。这个断言失败了,所以不会有匹配。
例如,a(?=b)将成功并与a匹配。
这个a(?=c)不会成功,因为在a之后没有c。
要断言在a之后有bc,可以使用a(?=bc)或断言中的断言(如@Keyur Potdar所指出的那样)。
https://stackoverflow.com/questions/51121583
复制相似问题