我有一个正则表达式问题,我必须在文本中识别令牌,如:
Foo-
后跟bar
或baz
,然后是-
,然后是一些数字,例如:
Foo-bar-010
Foo-baz-101
然后我想将我的匹配分开:Foo-bar
-010
和Foo-baz
-101
我的正则表达是这个:
(Foo-(bar|baz))-[0-9]+
这有点酷,但我不想为'bar'或'baz'子句定义一个组,因为它会影响我的结果。
想知道只有一个小组得到这个结果吗?
答案 0 :(得分:8)
(Foo-\b(?:bar|baz)\b)-[0-9]+
?:通常将该组标记为非捕获匹配(取决于您的引擎)。
答案 1 :(得分:1)
我认为这会做你想要的。
这会将 Foo - 和 -NNN 部分作为单独的组返回:
(Foo-ba[rz])(-\d+)
可以像这样完成整个事情。
(Foo-ba[rz]-\d+)