java正则表达式

来源:互联网 发布:大数据涂子沛简介 编辑:程序博客网 时间:2024/05/22 02:38
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

Java作为一种开发语言,有许多值得推荐的地方,但是它一直以来没有自带对正则表达式的支持。直到最近,借助于第三方的类库,Java开始支持正则表达式.
在regex包中,包括了两个类,Pattern(模式类)和Matcher(匹配器类)。Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真正影响搜索的对象。
下面使用正则表达式验证一个邮箱的格式,看是否符合要求

 //邮箱验证
    /*
     * 要求
     * 1.长度为3到18位
     * 2.包含大小写字母 和数字以及下划线
     * 3.
     */

public class Test {
 
    privatestaticScanner scanner;
    publicstaticvoidmain(String[] args)
    {
        scanner=newScanner(System.in);
        checkMail(scanner.next());
    }
     
   
    publicstaticvoidcheckMail(String mail)
    {
        //定义一个正则表达式
        //开始是小写字母a到z或者大写字母A到Z或者包含下划线的长度为3到18位,@之后也是小写字母a到z或者大写字母A到Z长度一位或多位,
        //.之后是大写或小写字母a到Z出现的次数为一次或多次
        String regx="[a-zA-Z—_0-9]{3,18}@[a-zA-Z0-9]+(\\.+[a-zA-Z]+)";
 
        if(mail.matches(regx))
        {
            System.out.println(mail);
        }
        else
        {
            System.out.println("邮箱地址不正确!");
        }
    }



之后这个用于验证手机号的正则表达式
1[3458]\d{4}(\d)\1{3}
1 匹配 1
[3458] 匹配3458任意一个
\d{4} 匹配40-9
(\d) 匹配 0-9并捕获到\1
\1{4} 匹配4个之前捕获到的\1


public class Test9 {
 
    /**
     * 写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
     * 例如:18601088888、13912366666
     * @param args
     */
    publicstaticvoidmain(String[] args) {
        String regex="[1][3-5[8]][0-9]{4}(\\d)\\1{4}";
        Scanner scanner=newScanner(System.in);
         
        booleanflag=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("位数不过,或着超出");
            }
             
        }
    }
}




---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
0 0
原创粉丝点击