您当前的位置: 首页 >  正则表达式

郭梧悠

暂无认证

  • 3浏览

    0关注

    402博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

郭梧悠 发布时间:2012-06-11 23:34:51 ,浏览量:3

     /* 输出结果,这是没有分组的情形
        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));//得到上述子串的字母
        }
从分组情况可以发现,每出现一个(左)括号,代表一个分组
关注
打赏
1663674776
查看更多评论
立即登录/注册

微信扫码登录

0.0396s