2026-10-17 22:00:08
反向引用是正则表达式中用于引用之前捕获组内容的功能,通过数字编号(如1、2)复用已匹配的子表达式,常用于查找重复内容、校验对称结构或提取复用特定部分。
核心机制查找重复内容匹配连续两个相同单词(如hello hello):
b(w+)s+1b(w+):捕获第一个单词作为组1。
s+:匹配一个或多个空白字符。
1:引用组1内容,要求后续单词与第一个完全相同。

校验对称结构确保HTML标签闭合(如<p>内容</p>):
<(w+)>.*?</1><(w+)>:捕获开始标签名作为组1。
</1>:引用组1内容,强制结束标签名与开始标签一致。
多级捕获组引用处理嵌套括号时,不同编号对应不同层级:
((d{2})-(d{2}))1:引用整个外层括号内容(如12-34)。
2:引用第一个子括号内容(如12)。
3:引用第二个子括号内容(如34)。
正则表达式内:JavaScript、Python等使用1;
替换字符串中:Python/PHP用$1,JS支持$1或1。

通过合理使用反向引用,可高效处理重复模式、对称结构等复杂文本匹配需求,但需注意语法细节与语言差异。