0

我一直在使用这个正则表达式在某些文本中显示双倍的单词:

pattern = re.compile(" ([a-zA-Z]+) \1 ")
result = re.search(pattern, someStringFromAFile)

在 grep 和 Notepad++ 中使用它,它可以检测到我想要的所有东西,比如“at at”和“ninja ninja”。

但是,当我尝试使用 Python 正则表达式匹配相同的文本时,它总是出现 None,这意味着它没有看到匹配项。我想知道如何修改我在 Python 中所做的工作以使其工作。

如果另外你可以解释为什么 Python 没有做 Notepad++ 和 grep 正在做的事情,那也太棒了:) 谢谢!

4

1 回答 1

8

因为\1表示普通字符串中值为 1的字符。用于r"..."原始字符串以保持反斜杠表示反斜杠。

pattern = re.compile(r" ([a-zA-Z]+) \1 ")
于 2013-09-02T18:58:11.357 回答