迹忆客 计算机编程题库

反向引用

正则表达式 `((ab))(cd)` 中,(cd)反向引用的编号是多少?
  • \1
  • \2
  • \3
  • \4
正确答案是:C
正确率:51%

解析:

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

相关介绍 反向引用

查看笔记

扫码一下
查看教程更方便