我使用
rubular.com来构建我的正则表达式,他们的文档描述如下:
(...) Capture everything enclosed (a|b) a or b
如何使用OR表达式而不捕获它的内容?
所以如果我想匹配“a或b后面跟一个c”,并且只捕获c,我不能使用
(a|b)(c)
对?然后,我捕获“a或b”以及“c”。我知道我可以过滤捕获的结果,但这似乎更多的工作…
我缺少明显的东西吗?我在Java使用这个,如果这是相关的。
根据正则表达式实现,您可以使用语法(?:…)的所谓非捕获组:
((?:a|b)c)
这里(?:a | b)是一个组,但是你不能引用它的匹配。所以你只能参考((?:a | b)c)的匹配,即ac或bc。