Use regex backreferences
Backreferences \1, \2,。.. 匹配相同文本 as 前一个 capturing 组. Useful 为 matching repeated words, paired delimiters, 和 palindromes.
- 1
backreference \1 (或 $1 在一些 flavors) matches exact 文本 captured 通过第一组. \2 matches 第二, etc. 此是 useful 为: matching repeated words (\b(\w+)\s+\1\b), paired quotes ("([^"]*)"), HTML tags (<(\w+)>.*?</\1>), 和 symmetric patterns.
- 2 正则表达式测试器 →
Test backreference patterns. Use \b(\w+)\s+\1\b 到查找 repeated words (" "). Use <(\w+)[^>]*>.*?</\1> 到匹配 HTML tags 具有 matching 打开/close. backreference ensures closing tag matches 打开 tag name.
- 3 正则表达式替换器 →
Use backreferences 在 replacements. 替换 (\w+)\s+\1 具有 $1 到 deduplicate consecutive words: " cat" → " cat". backreference \1 在模式 matches repeated 字; $1 在 replacement keeps one 副本.
常见问题
- 能够 backreferences 匹配不同文本 than 组?
- 否. backreference matches exact 相同文本该 是 captured 通过组. 如果组 1 captured "hello", \1 matches "hello" literally — 不模式. 此是 什么 makes backreferences useful 为 matching paired delimiters 和 repeated 内容.
- 是 backreferences 高效?
- Backreferences 能够 make regex matching NP-complete 在 worst 情况 (否线性-时间 algorithm exists). 为简单 cases (paired delimiters, repeated words), 性能是 fine. 为复杂 patterns 具有 backreferences 开大 输入, 集合超时到 prevent hangs.