Java正則表示式(筆記歸納)
阿新 • • 發佈:2019-01-10
public class Regex { //1、正則表示式:是有規則的一種表示式 // 我們常用regex來表示正則表示式 // 主要作用: // 通過一種有規則的字元模式,對 目標字串進行查詢、提取、替換、分割的作用 // 典型的應用場景:校驗相關字元是否匹配規則:使用者名稱校驗、電話號碼校驗、郵箱校驗 //2、正則表示式的語法 // 一、邊界符號: // ^ -- 表示開始符號 // $ -- 表示結束符號 // \b -- 表示邊界符號 // \B -- 表示非邊界符號 // 二、描述普通字元 // 小寫字元:"abcdef..." --> [a-z] // 大寫字元:"ABCDEF..." --> [A-Z] // 數字:"0123456789" --> [0-9] //部分字元範圍,比如:表示a、b、c、d的範圍 --> [a-d]或者[abcd] // 三、轉義字元 // 用法:\(反斜槓)加上特殊符號進行轉義 // (),\.,\',\?,\* // .在正則表示式中表示匹配一個除了換行符之外的單字元,如果我們要進行描述.本身的話,需要用轉義寫法\. // 四、數量限定: // {3} --> 表示3個 // {0,} --> 表示0到多個字元,作用相當於* // {1,3} --> 表示1個到3個 // {1,} --> 表示1個到多個,作用相當於+ // 表示最多3個的時候,寫法:{0,3},不能寫成{,3} // 五、或者 | // "(a|b)c" --> 表示ac或者bc // "(a|b)*c" --> 表示c之前跟了0個或者多個的a或者b,相當於a*c 或者 b*c // 六、特殊字元. --> 表示匹配除了換行符(\n)之外的任何一個單字元 // 如果要匹配“.”本身,要使用轉義寫法"\." // 七、方括號[] --> 表示某些字元允許在一個字串中的某一個特定位置出現 // "[ab]." --> 表示一個字串中有一個a或者b // 八、否定符[^] // 不允許在字串中出現字元的表示方法,在方括號中用"^"表示不希望出現的字元,‘^’應該要放在括號首位 // 九、() --> 標記一個子字串的開始和結束的位置,子字串可以獲取供以後使用,如果要匹配"("和")",應該用轉義寫法 // 十、其他的一些間接的正則表示式的寫法: // \w --> 匹配包括下劃線的任何單詞字元,等價於"[A-Za-z0-9_]" // \W --> 匹配任何非單詞字元,等價於"[^A-Za-z0-9_]" // \d --> 匹配一個數字字元,等價於[0-9] // \D --> 匹配一個非數字字元,等價於[^0-9] //正則表示式在Java中的應用: // JDK1.4版本之後,Java正式包含正則表示式的類庫:java.util.regex // Pattern pttern物件是一個正則表示式經過編譯之後的表現形式 // Matcher 它依據pattern物件作為匹配模式對字串展開匹配檢查 public static void main(String[] args) { //用法一:典型的呼叫順序 String regex = "[a-zA-Z]+"; String input = "Goktech2018"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input); if (matcher.matches()) { System.out.println(input+"符合使用者名稱規則"); } else { System.out.println(input+"不符合使用者名稱規則"); } //用法二:使用Pattern類中的matches方法直接匹配 // 第一個引數:正則表示式規則 // 第二個引數:目標字串 boolean b = pattern.matches(regex, input); System.out.println(b); } }