我有以下代码......
private static final String REGEX_TEAMSPLIT =
"([0-9]*)\\s-\\s([A-Z,a-z][a-z,\\s,A-Z]*)";
...
String reg = teamNames.get(0).html();
//reg == '62401 - Breakers'
teamNumber = reg.replace(REGEX_TEAMSPLIT, "$1");
//teamNumber == '62401 - Breakers'
现在我假设这会让我只按照我在线阅读的第一组。但正如你所看到的那样并非如此。有人能说出我错过的东西吗?
答案 0 :(得分:3)
您应该使用replaceAll
代替replace
。 (replace
方法不会将第一个参数解释为正则表达式,而是按字面意思匹配)
String REGEX_TEAMSPLIT = "([0-9]*)\\s-\\s([A-Z,a-z][a-z,\\s,A-Z]*)";
String reg = "62401 - Breakers";
String teamNumber = reg.replaceAll(REGEX_TEAMSPLIT, "$1");
System.out.println(teamNumber); // => 62401