我一直在使用这个正则表达式在一些文本中提出双重词:
pattern = re.compile(" ([a-zA-Z]+) \1 ")
result = re.search(pattern, someStringFromAFile)
在grep和Notepad ++中使用它,它会检测我想要的所有内容,例如“at at”和“ninja ninja”。
然而,当我尝试将相同的文本与Python正则表达式匹配时,它总是出现None,这意味着它没有看到匹配。我想知道如何修改我在Python中所做的工作以使其工作。
如果另外你可以解释为什么Python没有做Notepad ++和grep正在做的事情,那也太棒了:)谢谢!
答案 0 :(得分:8)
因为\1
在普通字符串中表示the character with value 1。使用r"..."
作为原始字符串以保留反斜杠意味着反斜杠。
pattern = re.compile(r" ([a-zA-Z]+) \1 ")