簡介
-
正則表達式
Regular Expression,簡稱RE語法
- 普通字符
可打印字符 + 不可打印字符
包括所有大寫和小寫字母,所有數字,所有標點符號以及一些其他符號 -
非打印字符
字符 | 描述 |
---|---|
\cx | Control+x,x屬於[A-Z a-z] |
\f | 換頁符 |
\n | 換行符 |
\s | 任何空白字符,包括空格、製表符、換頁符等,等價於[\f\n\r\t\v] |
\S | 任何非空白字符 |
\t | 製表符 |
\v | 垂直製表符 |
\r | 回車符 |
- 特殊字符
放到匹配字符的後邊,有特殊的含義,要相匹配他們要加反斜槓轉義
字符 | 描述 |
---|---|
$ | 輸入字符串的結尾位置,特殊的:\n \r |
( ) | 標記一個子表達式的開始和結束位置 |
* | 前面的子表達式零次或多次 |
+ | 前面的子表達式一次或多次 |
. | 除換行符 \n 之外的任何單字符 |
[ ] | 標記一箇中括號表達式 |
? | 前面的子表達式零次或一次,非貪婪的,儘可能匹配短的 |
\ | 轉義 |
^ | 輸入字符串的開始位,特殊的:\n \r |
{ } | 限定符表達式的開始 |
| | 指明兩項之間的一個選擇 |
- 限定符
指定正則表達式的一個給定組件必須要出現多少次才能滿足匹配
字符 | 描述 |
---|---|
* | 前面的子表達式零次或多次 |
+ | 前面的子表達式一次或多次 |
? | 前面的子表達式零次或一次 |
{n} | 匹配確定的 n 次 |
{n,} | 至少匹配n 次 |
{n,m} | 最少匹配 n 次且最多匹配 m 次 |
- 定位符
字符 | 描述 |
---|---|
^ | 輸入字符串的開始位,特殊的:\n \r |
$ | 輸入字符串的結尾位置,特殊的:\n \r |
\b | 匹配一個單詞邊界,即字與空格間的位置 |
\B | 非單詞邊界匹配 |
其他的元字符
字符 | 描述 |
---|---|
(pattern) | 匹配 pattern 並獲取這一匹配 |
(?:pattern) | 匹配 pattern 但不獲取匹配結果 |
(?=pattern) | 正向肯定預查 |
(?!pattern) | 正向否定預查 |
(?<=pattern) | 反向肯定預查,與正向肯定預查類似,只是方向相反 |
(?<!pattern) | 反向否定預查,與正向否定預查類似,只是方向相反 |
x | y |
[xyz] | 字符集合,匹配所包含的任意一個字符 |
[^xyz | 負值字符集合,匹配未包含的任意字符 |
[a-z] | 字符範圍,匹配指定範圍內的任意字符 |
[^a-z] | 負值字符範圍,匹配任何不在指定範圍內的任意字符 |
\d | 匹配一個數字字符,等價於 [0-9] |
\D | 匹配一個非數字字符,等價於 [^0-9] |
\w | 匹配字母、數字、下劃線。、,等價於 [A-Za-z0-9_] |
\W | 與\w相反,等價於 [^A-Za-z0-9_] |
\num | 匹配num個,其中 num 是一個正整數,對所獲取的匹配的引用。如,'(.)\1' 匹配兩個連續的相同字符。 |
運算符優先級
優先級相同的從左到右運算
運算符 | 描述 |
---|---|
\ | 轉義符 |
()[] | 括號 |
* , +, ?, {n}, {n,}, {n,m} | 限定符 |
^, $, \任何元字符、任何字符 | 位置和序列 |
| | 或 |
常用表達式
數字
字符
其他
完結!
如有疑問歡迎交流,添加vx: ai_hellohello