【发布时间】:2017-06-06 16:14:24
【问题描述】:
我有正则表达式re.sub(r"(?<!\s)\}", r' }', string)。 (?<!…) 序列表示什么?
【问题讨论】:
-
其实这是一个消极的后视docs.python.org/2/library/re.html
我有正则表达式re.sub(r"(?<!\s)\}", r' }', string)。 (?<!…) 序列表示什么?
【问题讨论】:
在您提供的正则表达式中,它比 < 符号多一点。
实际上有一个“消极的后视”:(?<! ),它说“在此之前的不是......”。在你的情况下,它正在寻找},条件是它之前的不是\s - 空格(制表符,空格......)
【讨论】:
这是一个回顾。看这里的解释:http://www.rexegg.com/regex-disambiguation.html#negative-lookbehind
引自来源:
匹配后的负向回溯:
\d{3}(?<!USD\d{3})
解释:\d{3}匹配 100,然后是负向回溯 @987654325 @ 断言在字符串中的那个位置,紧接在前面的不是字符“USD”,而是三个数字。
【讨论】: