Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java REGEX:从被许多可选组包围的特定组获取信息_Java_Regex_Capturing Group - Fatal编程技术网

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

Java REGEX:从被许多可选组包围的特定组获取信息,java,regex,capturing-group,Java,Regex,Capturing Group,假设我有一个正则表达式,它匹配如下字符串: (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都是第一组,我可以打电话给第二组得到E吗 多谢各位 事实上,您可以直接调用M.group(5),因为可选的捕获组将

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

(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都是第一组,我可以打电话给第二组得到E吗


多谢各位

事实上,您可以直接调用M.group(5),因为可选的捕获组将匹配null,根据这一点。

哦,我尝试过了,它成功了!我只是在学习正则表达式,所以我不知道--非常感谢!欢迎来到堆栈溢出!如果我的回答有助于解决你的问题,请考虑把它标记为。这是表示你的问题已“解决”并感谢帮助你的人的惯常方式。