黑马程序员技术交流社区

标题: 写一个正则表达式,可以匹配尾号5连的手机号。这个匹配.... [打印本页]

作者: 江南小道士    时间: 2015-3-11 16:47
标题: 写一个正则表达式,可以匹配尾号5连的手机号。这个匹配....
题目如下:写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。例如:18601088888、13912366666代码:
  1. package com.itheima;
  2. public class Test9 {
复制代码
该正则表达式表示倒数第六位可以是任意数字,最后5位是相同的任意数字。那么如果是尾号6连的手机号也可以匹配,这样还符合题目要求吗?
我的想法是: 1[3458]\\d{3}(\\d)(\\d)\\2{4} ,这里需要插入一步,就是第二组的数字不能与第一组的数字相同,也就避免了6连尾号也可以匹配的情况。
但不知道该怎么写,有大神能解答一下吗?



作者: chenlanaq    时间: 2015-3-31 11:37
  1. String reg="^1[3458]\\d{3}((?:([0-9])(?!\\1{1})){2})\\2{4}$";
复制代码


作者: xxz    时间: 2015-5-26 15:22
这个正则表达式,真心不会。
作者: 0618张军    时间: 2015-6-24 06:43
对不起,我才上课第三天
作者: tangpeng    时间: 2015-6-24 07:23
赞一个,相信会有用的,加油。
作者: 黑马无敌    时间: 2015-6-25 20:09
1[3458]\\d{4}(\\d)\1{3}
作者: 黑马无敌    时间: 2015-6-25 20:10
1[3458]\\d{4}(\\d)\1{4}
1 匹配 1
[3458] 匹配 3 4 5 8 任意一个
\d{4} 匹配 4个0-9
(\d) 匹配 0-9并捕获到\1
\1{4} 匹配 4个之前捕获到的\1
作者: 刘前龙    时间: 2015-9-16 14:52
牛逼  不过\1那里好像少了个杠杆

作者: mmxcf1    时间: 2015-12-21 22:18
String reg="^1[3458]\\d{3}((?:([0-9])(?!\\1{1})){2})\\2{4}$";
作者: huqianqian    时间: 2015-12-23 10:07
真是厉害!
作者: kingblue    时间: 2016-4-5 23:46
弄出来了ma
作者: cangwu    时间: 2016-4-18 22:52
我来看以下怎么实现的




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