正則表達式梳理

## 正則表達式

### 次數匹配

1. **+** : 一次或者多次

2. *:零次或者多次

3. ?:零次或者一次

4. {n,m}:最少 n 次,最多 m 次

5. {n,}:最少n次

6. {,m}:最多m次

### 特殊匹配元素

主要是代表一些特性的元素

1. . :代表除了換行之外的任意字符,例如 `.*` 匹配任意多個字符

2. \d : 代表任何一個數字,例如匹配一個座機號:`0\d{2}-\d{7}`

3. \w : 匹配字母或數字或下劃線,等價于 [A-Za-z0-9_],不能匹配漢字

4. \D:匹配任意非數字的字符

5. [ ] : 字符集合,范圍匹配,

? + [0-9] 代表數字 0-9的任何一個數字

? + [abc] 代表字母 abc 中的一個字符

? + [a-z] 代表字母 abc...z 中的一個字符

? + [!?] 代表符號 !? 中的一個符號

? + [A-Za-z0-9] 可以把所有字符拼接起來供選擇,中間不帶空格

### 特殊字符

1. ^ :反義符號;也代表一個字符串的開始

? + [^abcd] : 除了abcd的字符

2. $: 代表一個字符串的結束

3. | : 分歧條件,相當于或者, `\d{2}|\d{3}` 兩個數字或者三個數字

4. ( ) : 分組,把括號里的內容當做一個整體

5. \ : 轉義,對特殊字符需要進行轉義,例如匹配 sno*w, 需要正則 `sno\*w`

### 練習

1. 只包含(中文,大小寫字符,數字)的字符串,長度為 1 到 8

? `^[\u4e00-\u9fa5a-zA-Z0-9]{1,8}$`

2. 獲取 Url 中的參數, url = webApp/users/buyerOrders/orderInfo/1803271202gqo6a7tosn7e

? ```

? ? ? private static void test20() {

? ? ? ? ? System.out.println("------------test20()------------------");


? ? ? ? ? // 訂單詳情

? ? ? ? ? String url = "webApp/users/buyerOrders/orderInfo/1803271202gqo6a7tosn7e";


? ? ? ? ? String pattern = "webApp/users/buyerOrders/orderInfo/(.*)";

? ? ? ? ? Pattern pt = Pattern.compile(pattern);

? ? ? ? ? Matcher matcher = pt.matcher(url);

? ? ? ? ? if (matcher.find()) {

? ? ? ? ? ? ? System.out.println("uri:" + matcher.group(1));

? ? ? ? ? }

? ? ? }

? ```

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容