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

有什么方法可以从组内检索反向引用?在上面的表达式中,无引用(?:)是否阻止整个组捕获反向引用?

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

最佳答案

有什么方法可以从组内检索反向引用?

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

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

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

10-06 09:44