我一直在使用这个正则表达式在一些文本中提出双字:
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正在做的事情,那也会很棒:)谢谢!
因为在普通字符串中\1表示值为1的字符.使用r"..."的原始字符串保持反斜线意味着一个反斜杠.
pattern = re.compile(r" ([a-zA-Z]+) \1 ")
Run Code Online (Sandbox Code Playgroud)