如何在没有分组的情况下识别正则表达式中的两个不同的单词

时间:2009-08-18 12:50:37

标签: regex

我有一个正则表达式问题,我必须在文本中识别令牌,如:

Foo-后跟barbaz,然后是-,然后是一些数字,例如:

Foo-bar-010
Foo-baz-101

然后我想将我的匹配分开:Foo-bar -010Foo-baz -101

我的正则表达是这个:

(Foo-(bar|baz))-[0-9]+

这有点酷,但我不想为'bar'或'baz'子句定义一个组,因为它会影响我的结果。

想知道只有一个小组得到这个结果吗?

2 个答案:

答案 0 :(得分:8)

(Foo-\b(?:bar|baz)\b)-[0-9]+

?:通常将该组标记为非捕获匹配(取决于您的引擎)。

答案 1 :(得分:1)

我认为这会做你想要的。

这会将 Foo - -NNN 部分作为单独的组返回:

(Foo-ba[rz])(-\d+)

可以像这样完成整个事情。

(Foo-ba[rz]-\d+)