python正则表达式"\ 1"

Men*_*wen 25 python regex

任何人都可以告诉我在Python中的以下正则表达式中"\ 1"是什么意思?

re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
Run Code Online (Sandbox Code Playgroud)

谢谢!

Pat*_*ins 24

\1相当于re.search(...).group(1),正则表达式内部的第一个括号分隔的表达式.

事实上,有趣的是,正则表达式在Python和其他编程语言中明显慢于CS理论所要求的部分原因.


doc*_*ove 18

第一\1是指第一组-即第一括号表达式(\b[a-z]+)

来自文档 \number

"匹配相同数字组的内容.组从1开始编号.例如,(.+)\ 1匹配''或'55 55',但不匹配'thethe'(注意后面的空格组)"

在你的情况下,它正在寻找一个重复的"单词"(好吧,小写字母块).

第二种\1是在匹配的情况下替换使用,因此重复的单词将被单个单词替换.


Mic*_*eim 8

\1是一个反向引用.在这种情况下,它匹配,在括号中匹配的内容the

你基本上是在说

  • 匹配单词开头的空字符串(\ b)
  • 从az,一次或多次匹配字母字符
  • 再次在括号中匹配该术语

猫在(''''''''帽子里