Java: 从匹配器中提取组号
Java: extract group number from 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 组等。
您可以从第二组开始遍历所有组并找到第一个非空组并填充您的 dom:
while(m.find()) {
for (c=2; c<=m.groupCount(); c++) {
if (m.group(c) != null) {
domElement.setAttribute("rid", "fig" + m.group(c));
break;
}
}
}
很短的问题,是否可以提取组数,由 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 组等。
您可以从第二组开始遍历所有组并找到第一个非空组并填充您的 dom:
while(m.find()) {
for (c=2; c<=m.groupCount(); c++) {
if (m.group(c) != null) {
domElement.setAttribute("rid", "fig" + m.group(c));
break;
}
}
}