扫码一下
查看教程更方便
解析:
要找出特定反向引用的编号,请从左到右检测正则表达式。计算所有编号的捕获组的开头括号。第一个括号以反向引用号1开始,第二个是引用号2,以此类推。这里要忽略小括号的其他的语法功能(例如非捕获组),正则中的这些小括号是不计入编号的。这意味着非捕获括号还有另一个好处:我们可以将它们插入正则表达式中,而无需更改分配给反向引用的数字。这在修改复杂的正则表达式时非常有用。这里需要注意的是嵌套的优先级要高于并列的。就相当于深度遍历。如果一个子组1嵌套的有子组2,并且在子组1的右边并列又个子组3,则子组2的下标要先于子组3。因为(ab)
外面还有一层小括号,所以(ab)
的捕获编号为2。