鉴于此字符串:“a001212a a1212a a00333a a00334a abvbv”;
我试图通过更改正则表达式来选择第三个数字。但我无法弄明白。我只被允许改变正则表达式。如果我将参数更改为matcher.group(2)而不是组(1),则下面的代码有效。
帮助?
String nthNumber(String string) {
Pattern pat = Pattern.compile(
"(\\D+0*(\\d+)\\D+){3,}.*"
);
Matcher matcher = pat.matcher(string);
matcher.matches();
return matcher.group(1);
}
答案 0 :(得分:1)
您可以将第一个组设为非捕获组,如下所示。然后,组(1)应该工作。
String nthNumber(String string) {
Pattern pat = Pattern.compile(
"(?:\\D+0*(\\d+)\\D+){3,}.*"
);
Matcher matcher = pat.matcher(string);
matcher.matches();
return matcher.group(1);
}