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])和正則表達式是匹配的。

關注公衆號,獲取學習視頻

發佈了132 篇原創文章 · 獲贊 74 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章