Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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 解释正则表达式_Python_Regex - Fatal编程技术网

Python 解释正则表达式

Python 解释正则表达式,python,regex,Python,Regex,这个正则表达式是什么意思?我知道re.sub的功能,但无法理解第二部分: s = re.sub(r'\.([a-zA-Z])', r'. \1', s) ^^^^^^^ 有人能给我解释一下带下划线的部分吗?下次你应该提到你使用的是哪种编程语言,因为正则表达式语法在不同的语言中是非常不同的。另外,当使用正则表达式替换某些内容时,第二个参数通常不是正则表达式,而是具有特殊语法的字符串,因此了解编程语言也会有所帮助 \1是对第一个捕获组(括号中

这个正则表达式是什么意思?我知道
re.sub
的功能,但无法理解第二部分:

s = re.sub(r'\.([a-zA-Z])', r'. \1', s)
                            ^^^^^^^

有人能给我解释一下带下划线的部分吗?

下次你应该提到你使用的是哪种编程语言,因为正则表达式语法在不同的语言中是非常不同的。另外,当使用正则表达式替换某些内容时,第二个参数通常不是正则表达式,而是具有特殊语法的字符串,因此了解编程语言也会有所帮助

\1
是对第一个捕获组(括号中的表达式)匹配内容的反向引用

因此,
\([a-zA-Z])
匹配一个后跟字母的句点,该字母被捕获(存储/保存/记住),因为它被括号包围并在
\1
处使用。然后,句点和字母替换为句点、空格和该字母

示例:

.H
变为
。H


This.is.a.Test
变为
This。是A.Test

参见@Unihedron正则表达式中的点(第一个参数)被转义,这就是我在第三段中所说的。第二个参数不应该是正则表达式,因此不需要转义句点。我不确定这是哪种语言(我假设
r
前缀是regexp文本的语法),但我从来没有遇到过这样一种语言,它使用正则表达式作为替换方法的替换参数,所以要么OP在那里犯了错误,要么编程语言(或该方法)就是这样工作的。