黑马程序员技术交流社区

标题: 关于正则表达式组的应用有错误 [打印本页]

作者: 放飞自己365    时间: 2013-10-7 00:39
标题: 关于正则表达式组的应用有错误
本帖最后由 放飞自己365 于 2013-10-7 21:32 编辑

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


作者: 张慧    时间: 2013-10-7 11:31
  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

作者: 放飞自己365    时间: 2013-10-7 21:27
张慧 发表于 2013-10-7 11:31
前面你应该知道,组的就是后面的}(\\d)\\1{4}:用括号括起来的是一个组,\\1是组号,{4}是与括号内相同的个 ...

谢谢你,明白了,革命尚未成功,我还的继续努力。。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2