我如何解析以下字符串中的两个数字:
String fName = "Run_1_vs_2_pw_optimal_mapping.txt";
我试过这样,但它不起作用:
Pattern filePatt = Pattern.compile("Run_(\\d+)_vs_(\\d+)_", Pattern.CASE_INSENSITIVE);
Matcher scanner = this.filePatt.matcher(fName);
while (scanner.find()) {
int groupSize = scanner.groupCount();
if (groupSize == 2) {
firstRun = Integer.parseInt(scanner.group(0));
secondRun = Integer.parseInt(scanner.group(1));
}
break;
}
但是,这不起作用,因为scanner.gold(0)返回Run_1_vs_2
。但为什么呢?
答案 0 :(得分:2)
答案 1 :(得分:2)
因为组号0
对应于完全匹配。捕获从1
开始计算。你想要的是捕获1
(第一组括号)和2
(第二组括号)。