什么是正则expression式“独立捕获组”?

从Java 6 模式文档:

特殊结构(非捕获)

(?: X ) X ,作为一个非捕获组

(?> X ) X ,作为一个独立的非捕获组

(?:X)(?>X)什么区别? 在这种情况下, 独立是什么意思?

这意味着这个分组是primefaces的 ,并且为匹配的组丢弃了回溯信息。 所以,这个expression是占有的; 即使这样做是正则expression式整体成功的唯一途径也不会退后。 它是“独立的”,因为它不通过回溯与正则expression式的其他元素进行合作以确保匹配。

如果你有foo(?>(co)*)co ,那永远不会匹配。 我肯定有些实际的例子说明什么时候这会有用,请尝试O'Reilly的书。

(?>X[?/*/+])(?:X)[?/*/+]+