1
很短的問題,可以提取匹配器發現的組號碼嗎?Java:從匹配器中提取組號碼
例如這裏是我的代碼:
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組等
您可以使用語法'「(?。*)」'將您的組命名爲模式,然後調用matcher.group(「groupId」)'。它更具可讀性,可以讓你做你想做的事。 –
會記住它。不知道這個功能。 – Vitaliy
你不需要這樣做。你並不是真的通過比賽的號碼執行一個命令。你可以使用這個'([Pр]исунок| [Pр]исунку|рис。| [Ff] igure | fig。)s(\ d +)'如果你試圖強制執行一個命令,你只需要1個匹配把它們全部放在一起。(?:и。。\ s(\ d +))。 。*?(?: fig。\ s(\ d +))。*?(?:[fF] igure \ s(\ d +))' – sln