每天一点正则表达式积累(六)

     /* 输出结果,这是没有分组的情形
        123aa
        34345bb
        234cc*/
        Pattern p = Pattern.compile("\\d{3,5}[a-z]{2}");
        String s = "123aa-34345bb-234cc-00";
        Matcher m = p.matcher(s);
        while (m.find()) {
            p(m.group());
        }
//        p("************");
        //现在将整个匹配加个括号以示分组,看看输出结果
        p = Pattern.compile("(\\d{3,5}[a-z]{2})");
        m = p.matcher(s);
        while (m.find()) {
            p(m.group());
            p(m.group(1));//此时结果m.group()==m.group(1)
//            p(m.group(2));//如果运行这个显然报错
        }
        p("************");
        //下面只在数字匹配处加个括号,看看m.group(1)的输出结果是输出字母
       /* 123aa
        aa
        34345bb
        bb
        234cc
        cc*/
         p = Pattern.compile("\\d{3,5}([a-z]{2})");
        m = p.matcher(s);
        while (m.find()) {
            p(m.group());
            p(m.group(1));//此时group1取得是字母
//            p(m.group(2));//如果运行这个显然报错
        }
        /*下面只在字母匹配处加个括号,看看m.group(1)的输出结果是输出数字
         * 123aa
          123
          34345bb
          34345
          234cc
          234*/
        p = Pattern.compile("(\\d{3,5})[a-z]{2}");
        m = p.matcher(s);
        while (m.find()) {
            p(m.group());
            p(m.group(1));//此时group1取得是数字
//            p(m.group(2));//如果运行这个显然报错
        }
         p("************");
      /* 分成两组数字一组,字母一组,这样就可以分别拿到该字符串的数字和字母
          * 下面是运行结果
       符合匹配的子串是----123aa
       上述子串的数字---------123
       上述子串的字母---------aa
       符合匹配的子串是----34345bb
        上述子串的数字---------34345
       上述子串的字母---------bb
       符合匹配的子串是----234cc
       上述子串的数字---------234
         上述子串的字母---------cc*/
        p = Pattern.compile("(\\d{3,5})([a-z]{2})");
        s = "123aa-34345bb-234cc-00";
        m = p.matcher(s);
        while (m.find()) {
            p("符合匹配的子串是----"+m.group());//得到匹配的子串
            p("上述子串的数字---------"+m.group(1));//得到上述子串的数字
            p("上述子串的字母---------"+m.group(2));//得到上述子串的字母
        }
从分组情况可以发现,每出现一个(左)括号,代表一个分组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭梧悠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值