黑马程序员技术交流社区

标题: 正则表达式 [打印本页]

作者: 刘博    时间: 2011-12-19 09:02
标题: 正则表达式
本帖最后由 孤独的人 于 2011-12-20 09:06 编辑

匹配一个尾数4连的手机号 18600018888  18612346666
String regex = "1[3458]\\d{5}(\\d)\\1{3}";
只要后面是4连的,五连的不能满足的正则表达式是什么?
作者: 张帅    时间: 2011-12-19 12:04
可以啊,只要在正则后面加上个 字符串 结束符号 $ 就可以了吧
String regex = "1[3458]\\d{5}(\\d)\\1{3}$";
当然,开头应该也加上,字符串开始 标识  ^
不知道我的想法对不对,请赐教
作者: 刘博    时间: 2011-12-19 12:11
张帅 发表于 2011-12-19 12:04
可以啊,只要在正则后面加上个 字符串 结束符号 $ 就可以了吧
String regex = "1[3458]\\d{5}(\\d)\\1{3}$" ...

^我已经试了,不行的
作者: 张帅    时间: 2011-12-19 13:50
孤独的人 发表于 2011-12-19 12:11
^我已经试了,不行的

那结束符呢?
作者: 郭繁森    时间: 2011-12-19 17:12
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
本帖最后由 梁俊 于 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
本帖最后由 梁俊 于 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));

        }




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