【问题标题】:What do the "(?<!…)" symbols mean in a Python regular expression?Python 正则表达式中的“(?<!…)”符号是什么意思?
【发布时间】:2017-06-06 16:14:24
【问题描述】:

我有正则表达式re.sub(r"(?&lt;!\s)\}", r' }', string)(?&lt;!…) 序列表示什么?

【问题讨论】:

标签: python regex syntax


【解决方案1】:

在您提供的正则表达式中,它比 &lt; 符号多一点。

实际上有一个“消极的后视”:(?&lt;! ),它说“在此之前的不是......”。在你的情况下,它正在寻找},条件是它之前的不是\s - 空格(制表符,空格......)

【讨论】:

    【解决方案2】:

    这是一个回顾。看这里的解释:http://www.rexegg.com/regex-disambiguation.html#negative-lookbehind

    引自来源:

    匹配后的负向回溯: \d{3}(?&lt;!USD\d{3})
    解释: \d{3} 匹配 100,然后是负向回溯 @987654325 @ 断言在字符串中的那个位置,紧接在前面的不是字符“USD”,而是三个数字。

    【讨论】:

    • @ChristopherKyleHorton 出于某种原因,块引号不喜欢转义字符,并删除 \d 之后的所有文本。有什么方法可以编辑吗?
    • 队列中打开了一个位置,我可以为您编辑它。供您参考,您不妨see the changes I made in Markdown,以便您以后可以自己做这些。
    • @ChristopherKyleHorton 谢谢,对下次做非常有用。
    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多