java中的正则表达式来解析字符串

Rag*_*dan 4 java

我有一个字符串.该字符串是"New England 12 Philidelphia 24(Final)".我需要一个regaular表达式,我应该能够检索像这样的项目.

  1. 第一队 - 新英格兰队
  2. 第一队得分--12
  3. 第二队 - Philidelpia
  4. 第二队得分--24
  5. 结果 - 最后或大括号中的任何内容.

Boh*_*ian 5

下面是一个SSCCE,展示了如何使用正则表达式和组来提取所需的数据.

仅供参考,虽然它只适用于您提供的输入,但此代码将扫描包含多个结果的输入,并在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);
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

New England scored 12, Philidelphia scored 24, which was Final
Run Code Online (Sandbox Code Playgroud)