A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 放飞自己365 中级黑马   /  2013-10-7 00:39  /  1187 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 放飞自己365 于 2013-10-7 21:32 编辑

在这里用正则表达式,匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。例如:18601088888、13912366666
在这里前几个数匹配的话是好做的,但是后面尾数是5个相同的怎么匹配比较哈呢,正则中组怎么用呢,帮忙给提供几个例子讲解一下。

点评

记得改成已解决  发表于 2013-10-7 15:59

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 继续努力

查看全部评分

3 个回复

倒序浏览
  1.          String regex = "1[3458]\\d{4}(\\d)\\1{4}";
  2.          Pattern p  = Pattern.compile(regex);
  3.          Matcher m = p.matcher("14601088888");
  4.          if(m.matches()){
  5.                  System.out.println("匹配");
  6.          }
复制代码
前面你应该知道,组的就是后面的}(\\d)\\1{4}:用括号括起来的是一个组,\\1是组号,{4}是与括号内相同的个数。如果你要求是五个相同,除去第一个,那么后面就应该是4个。组常用的也就这个,复杂点的话就是((A)(B(C))) ,多重括号,嵌套组。你可以查看下API

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 很给力!

查看全部评分

回复 使用道具 举报
张慧 发表于 2013-10-7 11:31
前面你应该知道,组的就是后面的}(\\d)\\1{4}:用括号括起来的是一个组,\\1是组号,{4}是与括号内相同的个 ...

谢谢你,明白了,革命尚未成功,我还的继续努力。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马