正则表达式使用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
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 1.正则表达式介绍 正则表达式算起来也是一个很庞大的语言系统,在所有的开发语言中基本都支持正则表达式,它可以很方便...
    babybus_superdo阅读 2,614评论 3 6
  • 最近学习到第 23 天了,还有 4 天时间我的 JavaSE 课程就要结束了,之后会有一个考试,需要复习一下,正好...
    SawyerZh阅读 1,066评论 0 11
  • 昨天晚上,女儿玩的满头大汗,问我:“爸爸,我可以脱衣服吗?”因为她最近有些感冒,我有些担心,便坚定地说:“不行,你...
    小鑫影评书评情感阅读 563评论 2 3
  • 张清的日精进第44天 体验入 多年不见的老客人,聊起当年在康康接受服务的经历,受到的委屈,虽然都当笑话在说。但是我...
    kiyoi2017阅读 206评论 0 1