正则表达式里matcher有这几个方法,不知道怎么用groupCount()...返回匹配到的次数???grounp()...返回匹配到的字符串???求前辈教教这几个方法,谢谢=w=

解决方案 »

  1.   

    正则表达式可以用()分组,
    比如你用a(\\d)a(\\d)去匹配a1a3a3a4a5a3a4
    这个就是分了2个组,groupCount返回2
    你第一次调用Matcher.find后
    会匹配a1a3a
    用group(1)可以去取到第一个挂号里的值1,
    用group(2)可以去取到第二个挂号里的值3
      

  2.   

    "会匹配a1a3a"写错了,"会匹配a1a3"
      

  3.   

    对于正则表达式,组是用括号划分的正则表达式,可以根据组的编号来引用某个组。组号为0表示整个表达式,组号1表示被第一对括号括起的组,依此类推,举个例子,A(B(C))D中有三个组,组0是ABCD,组1是BC,组2是C。还是看以下例子吧,你编译运行下,对比结果研究下代码,就知道各个方法的意思了。import java.util.regex.Pattern;
    import java.util.regex.Matcher;public class Demo005 {
    public static void main(String[] args) {
    Matcher m = Pattern.compile("(\\d+)\\W+(\\d+)").matcher("朝阳区123街456栋789层987室");
    while (m.find()) {
    System.out.print(m.group() + " ");
    }
    System.out.println();
    m.reset();
    while (m.find()) {
    for (int i = 0; i <= m.groupCount(); i++) {
    System.out.print("["+m.group(i) + "]");
    }
    System.out.println(",");
    }
    }
    }