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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

题目如下:写一个正则表达式,可以匹配尾号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连尾号也可以匹配的情况。
但不知道该怎么写,有大神能解答一下吗?


11 个回复

倒序浏览
  1. String reg="^1[3458]\\d{3}((?:([0-9])(?!\\1{1})){2})\\2{4}$";
复制代码

回复 使用道具 举报
这个正则表达式,真心不会。
回复 使用道具 举报
对不起,我才上课第三天
回复 使用道具 举报
赞一个,相信会有用的,加油。
回复 使用道具 举报
1[3458]\\d{4}(\\d)\1{3}
回复 使用道具 举报
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
回复 使用道具 举报
牛逼  不过\1那里好像少了个杠杆
回复 使用道具 举报
mmxcf1 中级黑马 2015-12-21 22:18:28
9#
String reg="^1[3458]\\d{3}((?:([0-9])(?!\\1{1})){2})\\2{4}$";
回复 使用道具 举报
真是厉害!
回复 使用道具 举报
弄出来了ma
回复 使用道具 举报
我来看以下怎么实现的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马