3
(?:\/(\w+?=\/)\/(\w+))*

有没有办法从组内检索反向引用?在我上面的表达式中,无引用 (?:) 是否会阻止整个组捕获反向引用?

尝试匹配例如:/hello/how/are/you.../today 并捕获 '/' 之间的所有值

4

1 回答 1

2

有没有办法从组内检索反向引用?

是的。组不按层次结构解释。例如(a(b)),只有两个组,一个和两个,可以(反向)引用。就引用而言,它等于(a)(b)。引用的顺序仅由正则表达式模式中组的顺序(由组的开头确定)确定。一个群体是另一个群体的一部分这一事实并不能改变这一事实。

在我上面的表达式中,无引用 (?:) 是否会阻止整个组捕获反向引用?

不会。它只会阻止标记为非捕获组的组捕获(反向)引用。嵌套组不受影响并且将被捕获,除非它们也被标记为非捕获组。

于 2013-03-08T08:26:36.017 回答