python正则表达式\1“;
有人能告诉我在Python的下面正则表达式中“\1”是什么意思吗python正则表达式\1“;,python,regex,Python,Regex,有人能告诉我在Python的下面正则表达式中“\1”是什么意思吗 re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat') 第一个\1表示第一组,即第一个括号内的表达式(\b[a-z]+) 从\number 匹配相同编号的组的内容。组从1开始编号。例如,(.+)\1匹配“the”或“55 55”,但不匹配“the”(注意组后面的空格) 在你的例子中,它是在寻找一个重复的“单词”(好吧,是小写字母块) 第二个\1是匹配时使用的替换词,因此重复的单
re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
第一个
\1
表示第一组,即第一个括号内的表达式(\b[a-z]+)
从\number
匹配相同编号的组的内容。组从1开始编号。例如,(.+)\1匹配“the”或“55 55”,但不匹配“the”(注意组后面的空格)
在你的例子中,它是在寻找一个重复的“单词”(好吧,是小写字母块)
第二个\1
是匹配时使用的替换词,因此重复的单词将被单个单词替换。来自:
\number
匹配相同编号的组的内容。团体是
从1开始编号。例如,(.+)\1
匹配“the”
或
'55'
,但不要'thethe'
(注意组后面的空格)。这
特殊序列只能用于匹配前99组中的一组。
如果数字的第一个数字是0,或者数字的长度是3个八进制数字,
它不会被解释为组匹配,而是具有
八进制值数字。在字符类的'['
和']
中,所有
数字转义符被视为字符
您的示例与文档中的说明基本相同。
\1
是一个反向参考。
它与括号中曾经匹配过的内容相匹配,在本例中为the
你基本上是说
- 匹配单词(\b)开头的空字符串
- 从a-z匹配字母字符一次或多次
- 再次匹配括号中的术语
cat in(''the')'hat
\1
相当于重新搜索(…).group(1)
,是正则表达式中用括号分隔的第一个表达式
有趣的是,这也是Python和其他编程语言中正则表达式的速度明显慢于示例的部分原因。 下面的代码使用Python正则表达式查找给定字符串中的重复数字 导入re
result=re.search(r'(\d)\1{3}','5422267890')
打印结果。组()
这将给出输出
2222