我有一个字符串。字符串是"New England 12 Philidelphia 24 (Final)"。我需要一个正则表达式,可以从中检索以下项目。
- 第一支队伍 - New England
- 第一支队伍得分 - 12
- 第二支队伍 - Philidelpia
- 第二支队伍得分 - 24
- 结果 - 最终或括号中的任何内容。
我有一个字符串。字符串是"New England 12 Philidelphia 24 (Final)"。我需要一个正则表达式,可以从中检索以下项目。
while
循环中匹配所有结果。public static void main( String[] args ) {
String input = "New England 12 Philidelphia 24 (Final)";
String regex = "([a-zA-Z ]+)\\s+(\\d+)\\s+([a-zA-Z ]+)\\s+(\\d+)\\s+\\((\\w+)\\)";
Matcher matcher = Pattern.compile( regex ).matcher( input);
while (matcher.find( )) {
String team1 = matcher.group(1);
String score1 = matcher.group(2);
String team2 = matcher.group(3);
String score2 = matcher.group(4);
String result = matcher.group(5);
System.out.println( team1 + " scored " + score1 + ", " + team2 + " scored " + score2 + ", which was " + result);
}
}
输出
New England scored 12, Philidelphia scored 24, which was Final
使用这个:
"(\\w+) (\\d+) (\\w+) (\\d+) \((\\w+)\)"
\
或(
,我们使用\
进行转义。但是对于\w
或\d
,您是否也需要这样做呢?我认为不需要!那样行得通吗? - Shiridish试一下这个
^[\D]*\s*\d*\s*[\D]*\s*\d*\s*\([\D]*\)$