正则表达式使用API - Pattern Matcher

Pattern

pattern作用就是将一个String类型的正则表达式,转为一个Pattern对象

  1. 创建,该类没有公共构造函数,使用:
    Pattern.compile(reg); reg代表传入的正则表达式
  2. 分割字符串方法 split()
        String reg=",";
        String source="a,b,v,d";
        Pattern pattern=Pattern.compile(reg);
        String[] results=pattern.split(source);// a b c d
  1. 获取传入的正则表达式 pattern()
        String reg=",";
        String source="a,b,v,d";
        Pattern pattern=Pattern.compile(reg);
        String regular=pattern.pattern(); // ,
  1. 获取Matcher对象
Matcher matcher=pattern.matcher(source); //其中source是我们需要匹配的源字符串

Matcher

1.创建Matcher,该类没有公共构造函数,使用:

pattern.matcher(source);
  1. 3种匹配方法,分别是matches() lookingAt() find(),它们的返回值为布尔值,代表是否匹配到了:
  • matches() 该方法表示源字符串必须全部符合 正则表达式
        String reg="(\\w,)+";
        String source1="a,b,v,d,";
        String source2="a,b,v,d";
        Pattern pattern=Pattern.compile(reg);

        Matcher matcher1=pattern.matcher(source1);
        boolean result1=matcher1.matches(); //true

        Matcher matcher2=pattern.matcher(source2);
        boolean result2=matcher2.matches(); //false
  • lookingAt()该方法是匹配源字符串开始位置是否 符合 正则表达式:
        String reg1="a,";
        String reg2="b,";
        String source="a,b,v,d,";
        Pattern pattern1=Pattern.compile(reg1);
        Pattern pattern2=Pattern.compile(reg2);

        Matcher matcher1=pattern1.matcher(source);
        boolean result1=matcher1.matches(); //true

        Matcher matcher2=pattern2.matcher(source2);
        boolean result2=matcher2.matches(); //false
  • find()该方法表示匹配源字符串 符合正则表达式的所有结果:
        String reg="a,";
        String source="a,b,v,a,d,a,";
        Pattern pattern=Pattern.compile(reg);
        Matcher matcher=pattern.matcher(source);
        while(matcher.find()){
            int start=matcher.start();//匹配到结果在源字符串的起始索引
            int end=matcher.end();//匹配到结果在源字符串的结束索引
            String group=matcher.group();//匹配到结果字符串
            Log.e("match","group:"+group+"\tstart="+start+"\tend="+end);
            //group:a,  start=0 end=2
            //group:a,  start=6 end=8
            //group:a,  start=10    end=12
        }

你可能感兴趣的:(正则表达式使用API - Pattern Matcher)