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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘博 黑马帝   /  2011-12-19 09:02  /  2161 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孤独的人 于 2011-12-20 09:06 编辑

匹配一个尾数4连的手机号 18600018888  18612346666
String regex = "1[3458]\\d{5}(\\d)\\1{3}";
只要后面是4连的,五连的不能满足的正则表达式是什么?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

6 个回复

倒序浏览
张帅 黑马帝 2011-12-19 12:04:53
沙发
可以啊,只要在正则后面加上个 字符串 结束符号 $ 就可以了吧
String regex = "1[3458]\\d{5}(\\d)\\1{3}$";
当然,开头应该也加上,字符串开始 标识  ^
不知道我的想法对不对,请赐教

评分

参与人数 1技术分 +1 收起 理由
admin + 1 淡定

查看全部评分

回复 使用道具 举报
刘博 黑马帝 2011-12-19 12:11:11
藤椅
张帅 发表于 2011-12-19 12:04
可以啊,只要在正则后面加上个 字符串 结束符号 $ 就可以了吧
String regex = "1[3458]\\d{5}(\\d)\\1{3}$" ...

^我已经试了,不行的
回复 使用道具 举报
张帅 黑马帝 2011-12-19 13:50:07
板凳
孤独的人 发表于 2011-12-19 12:11
^我已经试了,不行的

那结束符呢?
回复 使用道具 举报
String regex = "1[3458]\\d{4}(\\d)\\1{4}";


匹配一个尾数4连的手机号 18600018888 18612346666
String regex = "1[3458]\\d{5}(\\d)\\1{3}";
只要后面是4连的,五连的不能满足的正则表达式是什么?
楼主说的是不能满足,应该是这样:

String regex = "1[3458]\\d{4}(\\d)(?!\\1{3,4})$";
回复 使用道具 举报
梁俊 黑马帝 2011-12-19 17:13:15
地板
本帖最后由 梁俊 于 2011-12-19 17:14 编辑

public static void checkTel(String tel)
        {
                char[] last=tel.toCharArray();
                String regex="1[3458]\\d{5}"+last[tel.length()-1]+"{4}";//最后4位和最后一位都一样
                System.out.println(tel.matches(regex));
        }
回复 使用道具 举报
梁俊 黑马帝 2011-12-19 17:21:23
7#
本帖最后由 梁俊 于 2011-12-19 17:22 编辑
梁俊 发表于 2011-12-19 17:13
public static void checkTel(String tel)
        {
                char[] last=tel.toCharArray();


public static void checkTel(String tel)
        {
                char[] last=tel.toCharArray();
                String regex="1[3458]\\d{5}"+last[tel.length()-1]+"{4}";//最后4位和最后一位都一样
                if(regex!="1[3458]\\d{4}"+last[tel.length()-1]+"{5}";)//使五连不满足
                System.out.println(tel.matches(regex));

        }

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马