Java:从Matcher中提取组号

时间:2017-02-24 16:52:09

标签: java regex matcher

非常简短的问题,有可能提取由Matcher找到的组号吗?

例如,这是我的代码:

Pattern k = Pattern.compile("(рис.\\s(\\d+)|[Рр]исунок\\s(\\d+)|[Рр]исунку\\s(\\d+)|fig.\\s(\\d+)|[fF]igure\\s(\\d+))");
Matcher m = k.matcher(DOMNode.getTextContent());

            while(m.find()) {           
              domElement.setAttribute("rid", "fig" + m.group(!1));
            }

有了这种模式,我可以获得几场完整的比赛。它们将被分组为匹配1:组1,组2;匹配2:组1,组3;比赛3:第1组,第4组

我想从第二组追加DOM元素属性。在周期中,它将是第一场比赛的第2组,第二场比赛的第3组等。

1 个答案:

答案 0 :(得分:1)

您可以从第2组开始遍历所有组,找到第一个非空组并填充您的dom:

while(m.find()) {
   for (c=2; c<=m.groupCount(); c++) {
       if (m.group(c) != null) {
           domElement.setAttribute("rid", "fig" + m.group(c));
           break;
       }
   }
}