REGEX:从许多可选组包围的特定组中获取信息

时间:2013-08-03 21:57:30

标签: java regex capturing-group

假设我有一个匹配如下字符串的正则表达式:

(A)(B)?(C)(D)?(E)(F)?

其中B,D和F组是可选的。

如何才能获得群组E?我问这个因为,我认为我不能只调用M.group(5),因为如果我的匹配器(M)没有找到B组和D组,那么组E实际上是组3而不是组5。 / p>

我确实有一个想法。如果我做了类似的事情:

((A)(B)?(C)(D)?)(E)(F)?

其中A,B,C和D都是组1,我可以调用组2来获得E吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

实际上,你可以只调用M.group(5),因为根据fiddle,可选的捕获组将匹配null。