什么是正则表达式"独立捕获组"?
时间:2020-03-05 18:49:36 来源:igfitidea点击:
从Java 6模式文档中:
Special constructs (non-capturing) (?:X) X, as a non-capturing group … (?>X) X, as an independent, non-capturing group
(?:X)
和(?> X)
之间有什么区别?在这种情况下,独立意味着什么?
解决方案
回答
这意味着分组是原子的,并且会丢弃匹配组的回溯信息。因此,该表达式是所有格;即使这样做是正则表达式整体成功的唯一途径,它也不会退缩。它是"独立的",即它不会通过回溯与正则表达式的其他元素协作来确保匹配。
回答
如果你有foo(?>(co)*)co
,那将永远不会匹配。我敢肯定有一些实用的例子说明什么时候有用,请尝试O'Reilly的书。