gog*_*n13 96 regex capture regex-group
我正在使用rubular.com来构建我的正则表达式,他们的文档描述了以下内容:
(...) Capture everything enclosed
(a|b) a or b
Run Code Online (Sandbox Code Playgroud)
如何使用OR表达式而不捕获其中的内容?例如,假设我要捕获"ac"或"bc".我不能使用正则表达式
(a|b)(c)
Run Code Online (Sandbox Code Playgroud)
对?从那时起,我在一组中捕获"a"或"b",在另一组中捕获"c",而不是相同.我知道我可以过滤捕获的结果,但这似乎更多的工作......
我错过了一些明显的东西吗 我在Java中使用它,如果这是相关的.
Gum*_*mbo 158
根据正则表达式实现,您可以使用所谓的非捕获组,其语法(?:…)如下:
((?:a|b)c)
Run Code Online (Sandbox Code Playgroud)
这(?:a|b)是一个组,但你不能引用它的匹配.所以,你只能引用本场比赛的((?:a|b)c)要么是ac或bc.
小智 5
如果您的 OR 替代项都是单个字符 - 您可以只使用“字符集”运算符:
([ab]c)
Run Code Online (Sandbox Code Playgroud)
它只会匹配acorbc并且更具可读性。