Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python正则表达式\1“;_Python_Regex - Fatal编程技术网

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是匹配时使用的替换词,因此重复的单

有人能告诉我在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
是匹配时使用的替换词,因此重复的单词将被单个单词替换。

来自:

\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