String shuju="阿森纳----盘路走势图 17胜 5平 4负 积分:56 排名: 2";
怎么获取 ”积分“ 和 “排名” 之间的 56 和 “排名后面的” 2
------解决方案--------------------
String shuju = "阿森纳----盘路走势图 17胜 5平 4负 积分:56 排名: 2";
Pattern p = Pattern.compile("(?<=积分[::])\\s*\\d+");
Matcher m = p.matcher(shuju);
if (m.find()) {
System.out.println(m.group().trim());
}
p = Pattern.compile("(?<=排名[::])\\s*\\d+");
m = p.matcher(shuju);
if (m.find()) {
System.out.println(m.group().trim());
}
------解决方案--------------------
把5楼的正则表达式优化一下
.*积分:\s*(\d+)\s*排名: (\d+)
可以从group中直接取出两个数字m.group(1),m.group(2)
------解决方案--------------------
补充楼上
[code =java]
String shuju="阿森纳----盘路走势图 17胜 5平 4负 积分:56 排名: 2";
Pattern p = Pattern.compile(".*积分:(\\d+).*排名:\\s(\\d+)");
Matcher m = p.matcher(shuju);
if(m.matches()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}
[/code]
------解决方案--------------------
String shuju="阿森纳----盘路走势图 17胜 5平 4负 积分:56 排名: 2";
Pattern p = Pattern.compile(".*积分:(\\d+).*排名:\\s(\\d+)");
Matcher m = p.matcher(shuju);
if(m.matches()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}