Python正则表达式中的"(?<!…)"符号是什么意思?

13
这个正则表达式是re.sub(r"(?<!\s)\}", r' }', string)。那么,(?<!…)序列代表什么意思?
它是一个否定回顾后发断言,表示匹配不在空格之前的右大括号 '}'。

1
实际上这是一个负向回顾后发断言。https://docs.python.org/2/library/re.html - quantik
2个回答

17

这里涉及到的不仅仅是<符号,在您提供的正则表达式中还有一个“否定回顾后发断言”:(?<! ),它的含义是“紧贴在它之后的内容不是……”。在您的情况下,它要寻找的是},但前面紧跟的不能是\s——空白字符(制表符、空格等)。


8

@ChristopherKyleHorton 由于某种原因,块引用不喜欢转义字符,并删除\d之后的所有文本。您有办法进行编辑吗? - A.Kot
1
队列中有一个空位,我可以为您编辑此内容。供您参考,您可能希望查看我在Markdown中所做的更改,以便将来自己进行这些更改。 - Knowledge Cube
@ChristopherKyleHorton 谢谢,非常有用,下次再用。 - A.Kot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接