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']