有一串字符,中间存在如果“,”,能否使用正则匹配出中间某两个“,”之间的数据。
例如“abc,defg,bcda,fegd,fdaas,fdafa”,匹配第3、4个“,”之间的字符“fegd”。

解决方案 »

  1.   


    public static void main(String[] args) {
    String str = "abc,defg,bcda,fegd,fdaas,fdafa";
    Matcher m = Pattern.compile(".*?,.*?,.*?,(.*?),.*").matcher(str);
    if (m.find()) {
    System.out.println(m.group(1));
    }
    }
      

  2.   

    为什么不直接split(",")进行分割
      

  3.   


    str = str.replaceAll(".*?,.*?,.*?,(.*?),.*", "$1");
    也可以
      

  4.   

    split固然可以。但是如果需要使用正则式,该如何解决呢?
      

  5.   


    String str = "abc,defg,bcda,fegd,fdaas,fdafa";
    System.err.println(str.replaceAll("[^,]+,[^,]+,[^,]+,", "").replaceAll(",.+", ""));