美文网首页
正则表达式使用API - Pattern Matcher

正则表达式使用API - Pattern Matcher

作者: 剩下的只有自己 | 来源:发表于2016-10-11 18:13 被阅读205次

    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

          本文链接:https://www.haomeiwen.com/subject/iqsbyttx.html