有人可以用清晰的语言解释非零后向断言 (?<=.) 是如何实现的吗?技术上在下面的例子中有效吗?也就是说,你真的能走过它吗?代码工作正常并产生正确的结果。
我读到了 (?<=\w)在 http://www.regular-expressions.info/wordboundaries.html ,但对于试图了解后向断言的人来说,解释并不清楚。谢谢。
>>> text = 'sassy'
>>> for (regexp,subst) in [ (r'(?<=.)s', '5'),(r'^s', '$') ]:
... text = re.sub(regexp,subst,text)
...
>>> text
'$a55y'
请您参考如下方法:
look-behind 就是这样做的:它验证当前字符之前的任何内容是否与 look-behind 表达式匹配。
在你的例子中,(?<=.)s将匹配 s , 但前提是它前面的内容匹配 . (即除 CRLF 之外的任何内容)。
