正则表达式为Java体育得分

时间:2015-06-26 22:18:23

标签: java regex string

晚上好,

我希望从Java中的一串文本中提取体育得分,包括得分任意一侧的名词。

一串文字,很可能是描述特定匹配的摘要,可以读作“[ANY TEXT] France 0-0 Germany [ANY TEXT]”,其中[ANY TEXT]可以引用任何包含字符的文本字符串,提供的特殊符号和数值不是[0-9] - [0-9]或[0-9] - [0-9]

的形式

例如字符串“在7.45开球的最后得分是法国2-3德国,一场精彩的比赛!”将返回输出:

法国2-3德国

同样地,注意到空格字符,字符串“在7.45开始最后得分是法国2 - 3德国,一场精彩的比赛!”将返回输出:

法国2 - 3德国

这是我到目前为止所做的:

import java.util.regex.*;
public class Regex {

    public static void main(String[] args) {
        String str="Current score is France 0-0 Germany"; 
        Pattern pat = Pattern.compile("REGEX NEEDED HERE")
        Matcher m = pat.matcher(str); 

         while( m.find() ) { 
         System.out.println(m.group(..)); 
         }
    }
}

要求输出:法国0-0德国

请让我知道我应该在这里使用正则表达式/正则表达式来获得所需的输出,最好是完整代码?

1 个答案:

答案 0 :(得分:0)

正则表达式找到游戏结果是France\s+\d+-\d+\s+Germany

在Java代码中,它用作

  String str="Current score is France 0-0 Germany"; 
  Matcher matcher = Pattern.compile("France\\s+\\d+-\\d+\\s+Germany").matcher(str);

  while (matcher.find()) {
    System.out.println(matcher.group(0));
  }

请参阅DEMO了解说明