Python 中正则表达式的反向引用如何工作?


分组

我们将正则表达式的一部分用一对圆括号括起来进行分组。这样,我们可以将运算符应用于组而不是单个字符。

捕获组和反向引用

圆括号不仅对子表达式进行分组,还创建反向引用。正则表达式中分组部分匹配的字符串部分存储在反向引用中。通过使用反向引用,我们可以重复使用正则表达式的部分内容。 

如果子表达式放在圆括号中,则可以使用 \1 或 $1 等来访问它。

例如,正则表达式 \b(\w+)\b\s+\1\b 匹配重复的单词,例如 tahiti tahiti,因为 (\w+) 中的圆括号将一个单词捕获到组 1,然后反向引用 \1 匹配组 1 捕获的字符。

示例

import re s = 'Tahiti Tahiti Atoll' result = re.findall(r'\b(\w+)\b\s+\1\b', s) print result

输出

将输出

['Tahiti']

更新时间:19-Feb-2020

630 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告