在字符串中查找双字

rsc*_*ieb 0 python regex

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

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

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

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

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

ken*_*ytm 8

因为在普通字符串中\1表示值为1的字符.使用r"..."的原始字符串保持反斜线意味着一个反斜杠.

pattern = re.compile(r" ([a-zA-Z]+) \1 ")
Run Code Online (Sandbox Code Playgroud)