Java入门第86课——验证Email的正则表达式

问题

    写出与email匹配的正则表达式,并测试该正则表达式的正确性。

方案

    首先,分析email的正则表达式,email的正则表达式如下:

[a-zA-Z0-9_\.-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,4}

    以上正则表达式可以分成三部分,各个部分如下:

    1)[a-zA-Z0-9_\.-]+@

    表示a~z、A~Z、0~9、下划线、点以及减号可以出现至少1次也可以多次,然后出现@符号。

    2)([a-zA-Z0-9-]+\.)+

    这段中的"( )"表示分组,这段正则表示这一组至少出现一次,也可以出现多次。括号中的内容表示,a~z、A~Z、0~9及减号可以至少出现1次也可以出现多次,然后出现"."字符。

    3)[a-zA-Z0-9]{2,4}

    表示a~z、A~Z、0~9可以出现大于等于2次,小于等于4次。

    其次,使用String类的matches方法,可以测试一个字符串是否和一个正则表达式匹配,matches方法的声明如下:

public boolean matches(String regex)

    以上方法表示当字符串和正则表达式regex匹配时返回true,否则,返回false。

步骤

    实现此案例需要按照如下步骤进行。

步骤一:添加测试方法

    首先,在名为JavaSE的工程下的src下新建名为day02的包,然后,在该包下新建名为TestRegEx的类,然后在该类中添加测试方法email,代码如下所示:

    package day02;
    import org.junit.Test;
    
    public class TestRegEx{
    
    /**
     *
     *测试email是否合法
     */
     @Test
     public void email(){
     }
    }

步骤二:测试email正则表达式的正确性

    首先,定义字符变量emailRegEx,该变量赋值为正则表达式:

"^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9]{2,4}$"

    其中,^表示匹配输入的开始位置,$表示匹配输入的结束位置。此外需要注意的是,在正则表达式中"\."表示的是"."字符,但是,在Java代码中需要对"\"字符做转义,即"\\"表示一个"\"。因此在定义Java的正则表达式变量emailRegEx时,使用"\\."来表示一个"."字符。

    然后,测试email([email protected])是否和正则表达式emailRegEx匹配,代码如下所示:

    package day02;
    import org.junit.Test;
    
    public class TestRegEx{
    
    /**
     *
     *测试email是否合法
     */
     @Test
     public void email(){
     
         String emailRegEx="^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9]{2,4}$";
         String email="[email protected]";
         System.out.println(email.matches(emailRegEx));
     }    
    }

步骤三:运行

    运行方法email,控制台输出结果如下:

    true

    从输出结果可以看出email([email protected])和正则表达式是匹配的。

关注公众号,获取学习视频

你可能感兴趣的:(Java零基础课程)