在字符串中查找双字

时间:2013-09-02 18:55:45

标签: python regex

我一直在使用这个正则表达式在一些文本中提出双重词:

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

在grep和Notepad ++中使用它,它会检测我想要的所有内容,例如“at at”和“ninja ninja”。

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

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

1 个答案:

答案 0 :(得分:8)

因为\1在普通字符串中表示the character with value 1。使用r"..."作为原始字符串以保留反斜杠意味着反斜杠。

pattern = re.compile(r" ([a-zA-Z]+) \1 ")