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在那里犯了错误,要么编程语言(或该方法)就是这样工作的。