在这样的一段字符串中:    A2345...div}...B3245...div}......div}      如何截取 A2345...div}  ?本人是动态拼接正则,需要获取的 是  A2345...div} 和 B3245...div}  现在遇到的一个难题是:如何获取匹配的第一个字符。 本人写了 A[\s\S]*...div  而满足的是全部的字符串,现在需要获得A2345...div} ,请问有哪位高人指点,谢谢!!!正则表达式

解决方案 »

  1.   

    String str = "A2345...div}...B3245...div}......div}";
    Pattern p = Pattern.compile("[a-zA-Z]\\d\\d\\d\\d...div}");
    Matcher m = p.matcher(str);
    while(m.find()) {
    System.out.println(m.group());
    }
      

  2.   


            //最后面又加了一个符合要求的A开头的字符串
            String str = "A2345...div}...B3245...div}......div}A12345...div}";
            Pattern p = Pattern.compile("(A\\d+\\.\\.\\.div)}");
            Matcher m = p.matcher(str);
            while (m.find())
            {
                System.out.println(m.group());
            }
      

  3.   

    你能获取全部,就用()把你的需要的每部分的正则表达式括起来在不通语言中可以通过不同的方式获取到
    有的是"\1" 上面用java的时候调用 matcher.group(n) n是第几个括号。 
      

  4.   

    String a = "A2345...div}...B3245...div}......div}";
    Pattern p = Pattern.compile("A[\\s\\S]*?...div}");
    Matcher m = p.matcher(a);
    while (m.find()) {
    System.out.println(m.group());
    }
      

  5.   

    用split完全可以,用indexof(“}”)找到}的位置,截取spilt(}的位置+1)