JAVA深化篇_42—— 正則表達式
3 正則表達式
3.1正則表達式介紹
3.1.1 什么是正則表達式
正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為 regex、regexp 或 RE),是計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。正則表達式并不僅限于某一種語言,但是在每種語言中有細微的差別。
3.1.2 正則表達式的作用
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。使用特殊語法來表示字符類、數量限定符和位置關系,然后用這些特殊語法和普通字符一起表示一個模式。
3.1.3 正則表達式特點
?? 靈活性、邏輯性和功能性非常的強;
?? 可以迅速地用極簡單的方式達到字符串的復雜控制
?? 對于剛接觸的人來說,比較晦澀難懂
3.2Java 中正則表達式的使用
在 Java 中正則表達式為 String 類型,被驗證的內容同樣為 String 類型。通過 **String 類中的 matches 方法**實現內容的匹配校驗。
如:“被驗證內容”.matches(“正則表達式”)
3.3正則表達式語法規則
正則表達式語法規則:[內容限定]{長度限定}
3.3.1 內容限定
在定義限定內容規則時,如果沒有指定長度限定,那么默認長度為 1。
3.3.1.1 單個字符限定
[a]:表示當前內容必須是字母 a
3.3.1.2 范圍字符限定
[a-z0-9]:表示內容可以是 a-z 之間的任意字母或者 0-9 之間的任意數字,不分先后。
3.3.1.3 取反限定
[^abc]:表示內容不能為a或b或c
3.3.2 長度限定
在正則表達式中通過{ }來限定內容長度。
固定長度:{固定長度值}
范圍長度:{最小長度值,最大長度值}
[a-z]{5}:表示內容范圍為小寫字母 a 到 z 且長度必須為 5
[a-z]{2,8}:表示內容范圍為小寫字母 a 到 z 且長度在 2 到 8 之間,包含 2 與 8
[a-z]{2,}:表示內容范圍為小寫字母 a 到 z 且最小長度為 2,最大長度無限制
[a-z]{0,2}:表示內容范圍為小寫字母 a 到 z 且最小長度為 0,最大長度為 2
3.3.3 長度限定符號
長度限定符號是指通過預定義符號來完成長度限定。
?:零次或一次。等同于{0,1}
+:一次或多次。等同于{1,}
*:零次或多次。等同于{0,}
3.3.4 預定義字符
在正則表達式中可以通過一些預定義字符來表示內容限定。目的是為了簡化內容限定的定義。
常見的預定義字符:
| 字符 描述 | |
|---|---|
| \d | 匹配一個數字字符,等價于[0-9]。 |
| \D | 匹配一個非數字字符,等價于[ ^0-9]。 |
| \n | 匹配一個換行符。 |
| \r | 匹配一個回車符。 |
| \s | 匹配任何空白字符,包括空格、制表符、換頁符等等。 |
| \S | 匹配任何非空白字符。 |
| \t | 匹配一個制表符。 |
| \w | 匹配包括下劃線的任何單詞字符。等價于“[A-Za-zO-9 ]”。 |
| \W | 匹配任何非單詞字符。等價于“[ ^A-Za-z0-9 ]”。 |
3.3.5 正則表達式的組合定義
在正則表達式中可以通過多個內容限定與長度限定來組合定義。
示例:
必須是以字母開頭,最少長度為 4,最大長度為 8。

校驗帶有區號的電話號碼的正則表達式

3.4常見的正則表達式

浙公網安備 33010602011771號