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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马IT学员 中级黑马   /  2014-1-3 14:59  /  1819 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。

1 个回复

倒序浏览
本帖最后由 王者黑桃 于 2014-1-3 15:06 编辑

1[3458]\d{4}(\d)\1{3}

1 匹配 1

[3458] 匹配 3 4 5 8 任意一个

\d{4} 匹配 4个0-9

(\d) 匹配 0-9并捕获到\1

\1{4} 匹配 4个之前捕获到的\1

public class Telephone {

    public static void main(String[] args) {

        String regex="[1][3-5[8]][0-9]{4}(\\d)\\1{4}";

        Scanner scanner=new Scanner(System.in);

        boolean flag=true;

        System.out.println("请输入您的电话号码");

        while(flag)

        {

            String a=scanner.next();

            if(a.toCharArray().length==11)

            {

                if(a.matches(regex))

                {

                    flag=false;

                    System.out.println("匹配成功!");

                }else

                {

                    System.out.println("不匹配请从新输入:");

                }

            }else{

                System.out.println("位数不过,或着超出");

            }   

        }

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