關於Java中的正則表示式匹配
阿新 • • 發佈:2021-11-22
線上正則表示式網址: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); }