(?=...) Matches if ... matches next, but doesn’t consume any of the string.
This is called a lookahead assertion. For example, Isaac (?=Asimov) will match
'Isaac ' only if it’s followed by 'Asimov'.
s = 'there is 1Fmore 1Gother 21go 3fold 3slambam'
pat = re.compile('(?=(1F|2|3sl.[mn]))')
for m in pat.finditer(s):
print(m.start(), repr(s[m.start():]))
您可能正在寻找正则表达式中的“lookahead”模式。例如:
产量:
^{pr2}$来自the docs:
与其中一个注释相反,lookahead表达式并不局限于“固定长度字符串”,至少就我所理解的那样。例如:
产量:
在这里,lookahead是一个相当扩展的子模式,它具有可变的长度和嵌入的通配符以及它自己的子表达式。在
相关问题 更多 >
编程相关推荐