【问题标题】:Regex that recognizes ^^ and ^ as different将 ^^ 和 ^ 识别为不同的正则表达式
【发布时间】:2015-11-26 02:21:25
【问题描述】:

我正在使用 Python re 模块。

我可以使用正则表达式 r'\bA\b'(原始字符串)来区分 'A''AA':它会在字符串 'A' 中找到匹配项,而在字符串 'AA' 中找不到匹配项。

我想用克拉^ 而不是A 来实现同样的目的:我想要一个区分'^''^^' 的正则表达式。

我遇到的问题是正则表达式r'\b\^\b''^' 中找不到匹配项。

有什么想法吗?

【问题讨论】:

  • 您可以使用lookahead assertion。但据我所知,这些通常计算成本很高,并且可能有更简单的方法来实现您所需的结果。
  • 经过一番搜索,我相信这更多的是关于\b 而不是^:答案stackoverflow.com/a/3241901/1243435 很好地解释了单词边界符号\b.

标签: python regex


【解决方案1】:

您需要为此使用环视:

(?<!\^)\^(?!\^)

\b 是单词边界,介于单词字符和非单词字符之间的位置,因此您的模式非常不具体(没有具体说明AA_ 也不会假设_ 是一个单词字符,则匹配。

在这里,我们断言需要有一个前面的字符不是插入符号的地方,然后是插入符号,然后是后面的字符不是插入符号的地方(归结为“插入符号不能在插入符号公司”)。

【讨论】:

    猜你喜欢
    • 2019-01-06
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    相关资源
    最近更新 更多