给定这个字符串:“a001212a a1212a a00333a a00334a abvbv”;
我试图通过更改正则表达式来选择第三个数字。但我无法弄清楚。我只被允许更改正则表达式。如果我将参数更改为 matcher.group(2) 但不适用于 group(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);
}
最佳答案
您可以将第一组设置为非捕获组,如下所示。然后,group(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);
}
关于java - 选择字符串中的第三个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863195/