日期:2014-05-20  浏览次数:20610 次

JAVA正则,Matcher类几个方法求指点


正则表达式里matcher有这几个方法,不知道怎么用

groupCount()...返回匹配到的次数???

grounp()...返回匹配到的字符串???

求前辈教教这几个方法,谢谢=w=

------解决方案--------------------
"会匹配a1a3a"写错了,"会匹配a1a3"
------解决方案--------------------
楼主搜索一下 正则表达式 分组,了解下它是什么概念
------解决方案--------------------
对于正则表达式,组是用括号划分的正则表达式,可以根据组的编号来引用某个组。组号为0表示整个表达式,组号1表示被第一对括号括起的组,依此类推,举个例子,A(B(C))D中有三个组,组0是ABCD,组1是BC,组2是C。还是看以下例子吧,你编译运行下,对比结果研究下代码,就知道各个方法的意思了。
Java code

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(",");
        }
    }
}