2013-08-03 12 views
0

假设包围我有,像这样的字符串匹配正则表达式表达的特定组获取信息:REGEX:从由许多任选的基团

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

其中所述基团B,d,和F是可选的。

我怎样才能得到团体E?我问这是因为,我不认为我可以直接致电M.group(5),因为如果我的匹配器(M)没有找到组B和D,那么组E实际上是组3而不是组5.我想我有一个想法如果我做了类似的事情:

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

其中A,B,C和D都是组1,我可以称组2为E?

谢谢。

回答

2

其实,你可以只是调用M.group(5),因为可选捕获组将匹配null,根据此fiddle

+0

哦,我试过了,它工作!我只是学习正则表达式,所以我不知道 - 非常感谢你! – user2649427

+0

欢迎来到Stack Overflow!如果我的答案有助于解决您的问题,请考虑将其标记为[接受](http://stackoverflow.com/faq#howtoask)。这是表示你的问题“已解决”并感谢帮助你的人的习惯方式。 –