黑马程序员技术交流社区

标题: 写一个正则表达式用来匹配手机号 [打印本页]

作者: 黑马IT学员    时间: 2014-1-3 14:59
标题: 写一个正则表达式用来匹配手机号
写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
作者: 王者黑桃    时间: 2014-1-3 15:01
本帖最后由 王者黑桃 于 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("位数不过,或着超出");

            }   

        }

    }
}





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