import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test { public static void main(String[] agrs) { String s = "4.6分|79条评价"; Pattern p = Pattern.compile("(\\d+)条评价"); Matcher m = p.matcher(s); if (m.find()) { System.out.println(m.group(1)); } } }正则部分还是写的清楚些,不要用什么.*之类的,避免意外
str = str.replaceAll("[^\\|]*\\|(\\d*).*", "$1");
这样写可以吗?
Pattern p2 =Pattern.compile("|(\\d+)");
不过挺麻烦的,还得写好多代码来处理。
String str ="4.6分|79条评价";
boolean result = Pattern.matches(
"[\\w\\W]+\\|[\\w\\W]+",str);
if(result){
String[] strs = str.split("\\|");
String str1 = strs[1].substring(0, 2);
System.out.println(str1);
}
结果:79
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test { public static void main(String[] args){
String str ="4.6分|79条评价";
Pattern pattern = Pattern.compile(".*\\|(\\d+).*");
Matcher matcher = pattern.matcher(str);
if(matcher.matches()){
System.out.println(matcher.group(1));
}
}
}
import java.util.regex.Pattern;public class Test {
public static void main(String[] agrs) {
String s = "4.6分|79条评价";
Pattern p = Pattern.compile("(\\d+)条评价");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1));
}
}
}正则部分还是写的清楚些,不要用什么.*之类的,避免意外
Pattern pattern=Pattern.compile("(\\d+[.]?\\d?)\\|(\\d+[.]?\\d?).?");
Matcher matcher=pattern.matcher(ss);
if(matcher.find()){
System.out.println(matcher.group(1)+"---"+matcher.group(2));
}
}
正则的功能很强大的。根据这个例子举一反三,楼主会对正则有一个比较深刻的理解的