晚上好,
我希望从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德国
请让我知道我应该在这里使用正则表达式/正则表达式来获得所需的输出,最好是完整代码?
答案 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了解说明