引子
前端开发中,难免会遇到需要匹配标签的需求,这么简单的需求,不就是两个尖括号包裹一个标签名嘛,接下来一顿操作,
/<[\w]+>.*<\/[\w]+>/g
,然后完美匹配了<div>xx</div>
等内容,需求完成…
等等,咋看之下,当前正则确实能匹配各种标签,但是它同样能匹配类似
<div>xx</p>
的内容。这就意味着我们需要保持两个尖括号内的内容相同才行。
正则之分组回溯引用
分组 ()
所谓分组,就是把要匹配的内容放在括号()里。括号里的内容可以视为是一个整体的子表达式
/<([\w]+)>.*<\/([\w]+)>/g
回溯引用 \N
正则表达式还提供了一种引用之前匹配分组的机制,有些时候,我们或许会寻找到一个子匹配,该匹配接下来会再次出现。
// 该表达式中的 \1 就是整个表达式中的第一个分组