原文鏈接:http://www.one2know.cn/python6/
簡介
- 正則表達式
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} |
限定符 |
^, $, \任何元字符、任何字符 |
位置和序列 |
| |
或 |
常用表達式
數字

字符

其他

