1. 程式人生 > 其它 >關於Java中的正則表示式匹配

關於Java中的正則表示式匹配

線上正則表示式網址:https://any86.github.io/any-rule/

注意:

  在網站複製正則表示式使用的時候,要將第一個'/'跟最後一個'/'替換稱為括號

java.util.regex是一個用正則表示式所訂製的模式來對字串進行匹配工作的類庫包。它包括兩個類:

Pattern:Pattern是一個正則表示式經編譯後的表現模式

Matcher:Matcher物件是一個狀態機器,它依據Pattern物件做為匹配模式對字串展開匹配檢查

public static void main(String[] args) {
    /*定義要進行驗證的手機號碼*/
    String cellPhoneNumber = "15817784252";
    /*定義手機號碼正則*/
    String phoneRegex = "(^(?:(?:\\+|00)86)?1(?:(?:3[\\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\\d])|(?:9[189]))\\d{8}$)";
    /*
      第一種:使用String類
      說明此字串是否與給定的正則表示式匹配。
      引數: regex–此字串要與之匹配的正則表示式
      返回值: 當且僅當此字串與給定正則表示式匹配時為true
     */
    boolean stringMatches = cellPhoneNumber.matches(phoneRegex);
    System.out.println("使用String類進行比較結果:" + stringMatches);

    /*第二種:使用Pattern
     * 將給定的正則表示式編譯為模式。
     * 引數: regex–要編譯的表示式
     * 返回值: 已編譯為模式的給定正則表示式
     * */
    Pattern pattern = Pattern.compile(phoneRegex);
    /*建立一個匹配器,該匹配器將根據此模式匹配給定的輸入。 引數: 輸入–要匹配的字元序列*/
    Matcher matcher = pattern.matcher(cellPhoneNumber);
    /*字串是否與正則表示式相匹配*/
    boolean patternMatches = matcher.matches();
    System.out.println("使用Pattern類的matcher進行比較結果:" + patternMatches);

    /*第三種:使用Pattern的兩個引數構造器
    * 引數1: 正則表示式
    * 引數2: 要匹配的字元序列
    * 返回值: 正則表示式是否與輸入匹
    * */
    boolean constructorMatches = Pattern.matches(phoneRegex, cellPhoneNumber);
    System.out.println("使用Pattern類的matcher過載進行比較結果" + constructorMatches);
}