要得到下面字符串中的79正则表达式该如何写呢?4.6分|79条评价

解决方案 »

  1.   

    试试这个:
      str = str.replaceAll("[^\\|]*\\|(\\d*).*", "$1");
      

  2.   

    Pattern p2 =Pattern.compile("|(.*?)条评价");
    这样写可以吗?
      

  3.   

    如果想截取,应该这样写就够了:
      Pattern p2 =Pattern.compile("|(\\d+)");
    不过挺麻烦的,还得写好多代码来处理。
      

  4.   

    想截取的话也不麻烦,就几行代码的事,可以以|为分割符把字符串存到数组中再截取
    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
      

  5.   


    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));
    }
    }
    }
      

  6.   

    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));
    }
    }
    }正则部分还是写的清楚些,不要用什么.*之类的,避免意外
      

  7.   

    String ss="4.6|79条评价";
    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));
    }
    }
    正则的功能很强大的。根据这个例子举一反三,楼主会对正则有一个比较深刻的理解的