正規表示式是對字串(包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為「元字元」))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。
正規表示式是一種文字模式,模式描述在搜尋文字時要匹配的乙個或多個字串。
正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。
字元描述
\f匹配乙個換頁符
\n匹配乙個換行符
\r匹配乙個回車符
\t匹配乙個製表符
\v匹配乙個垂直製表符
\s匹配任何空白字元,包括空格、製表符、換頁符等等
\s匹配任何非空白符
所謂特殊字元,就是一些有特殊含義的字元,例如』『,表示任何字元的意思,而如果只想匹配』『符號時,則需要對』*』符號進行轉義,即在其前面加』\』轉義符。
下表列出了正規表示式中的特殊字元:
特殊字元描述^
匹配字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。例如[^a],表示不以a字元開頭,要匹配^字元本身,則加轉義符:\^
$匹配字串的結尾位置,要匹配$字元本身,則加轉義符:\$
()標記乙個子表示式的開始和結束位置,要匹配$字元本身,則加轉義符:\( 和 \)
[標記乙個中括號表示式的開始
n是乙個非負整數。匹配確定的n次。例如,』o』 不能匹配 「bob」 中的 『o』,但是能匹配 「food」 中的兩個 o
n 是乙個非負整數。至少匹配n 次。例如,』o』 不能匹配 「bob」 中的 『o』,但能匹配 「foooood」 中的所有 o。』o』 等價於 『o+』。』o』 則等價於 『o*』
m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,」o」 將匹配 「fooooood」 中的前三個 o。』o』 等價於 『o?』。請注意在逗號和兩個數之間不能有空格
?匹配前面的子表示式0次或1次。例如,』do(es)?』可以匹配』do』、』does』中的』does』、』doxy』中的』do』。等價於
*匹配前面的子表示式零次或多次。例如,zo* 能匹配 「z」 以及 「zoo」。* 等價於
+匹配前面的子表示式一次或多次。例如,』zo+』 能匹配 「zo」 以及 「zoo」,但不能匹配 「z」。+ 等價於
例如,匹配下面html文件中的h1標記:
chapter 1 - 介紹正規表示式h1>
貪婪模式:表示式匹配從開始小於符號(<)到h1標記的大於符號(>)之間的所有內容
/<.*>/
非貪婪模式:如果您只需要匹配開始和結束h1標籤,下面的非貪婪表示式只匹配
/<.*?>/
如果只想匹配開始的 h1 標籤,表示式則是:
/<\w+?>/
定位符使您能夠將正規表示式固定到行首或者行尾。它們還使您能夠建立這樣的正規表示式,這些正規表示式出現在乙個單詞內、在乙個單詞的開頭或者乙個單詞的結尾。
定位符用來描述字串或單詞的邊界。
字元描述
^匹配字串的開始位置
$匹配字串的結尾位置
\b匹配乙個字邊界,即字與空格的位置,例如, 『er\b』 可以匹配」never」 中的 『er』,但不能匹配 「verb」 中的 『er』
\b匹配非字邊界,』er\b』 能匹配 「verb」 中的 『er』,但不能匹配 「never」 中的 『er』
注意:不能將限定符與定位符一起使用。由於在緊靠換行或者字邊界的前面或後面不能有乙個以上位置,因此不允許諸如 ^* 之類的表示式。
若要匹配一行文字開始處的文字,請在正規表示式的開始使用 ^ 字元。不要將 ^ 的這種用法與中括號表示式內的用法混淆。
若要匹配一行文字的結束處的文字,請在正規表示式的結束處使用 $ 字元。 字元
描述x|y
匹配 x 或 y。例如,』z
[xyz]
字元集合。匹配所包含的任意乙個字元。例如, 『[abc]』 可以匹配 「plain」 中的 『a』
[^xyz]
負值字元集合。匹配未包含的任意字元。例如, 『[^abc]』 可以匹配 「plain」 中的』p』、』l』、』i』、』n』
[a-z]
字元範圍。匹配指定範圍內的任意字元。例如,』[a-z]』 可以匹配 『a』 到 『z』 範圍內的任意小寫字母字元
[^a-z]
負值字元範圍。匹配任何不在指定範圍內的任意字元。例如,』[^a-z]』 可以匹配任何不在 『a』 到 『z』 範圍內的任意字元
\d匹配乙個數字字元。等價於 [0-9]
\d匹配乙個非數字字元。等價於 [^0-9]
\w匹配字母、數字、下劃線。等價於[a-za-z0-9_]
\w匹配非字母、數字、下劃線。等價於 [^a-za-z0-9_]
\s匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]
\s匹配任何非空白字元。等價於 [^ \f\n\r\t\v]
校驗數字
a. 數字:^[0-9]*$
b. n位數字:^\d$
c. m-n位的數字:^\d$
d. 零和非零開頭的數字:^(0|[1-9][0-9]*)$
e. 正整數:^[1-9]\d*$
f. 負整數:^-[1-9]\d*$
g. 整數:^-?[1-9]\d*$
校驗字元
a. 漢字:^[\u4e00-\u9fa5]$
b. 字母和數字:^[a-za-z0-9]+$
b. 網域名稱:[a-za-z0-9][-a-za-z0-9](/.[a-za-z0-9][-a-za-z0-9])+/.?
c. interneturl:[a-za-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
d. 手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d$
e. 身份證號(15位、18位數字),最後一位是校驗位,可能為數字或字元x:(^\d$)|(^\d$)|(^\d(\d|x|x)$)
f. 日期格式:^\d-\d-\d
在菜鳥教程的 python 基礎教程中,python 正規表示式 這一章節專門介紹了有關 python 正規表示式的知識。
以上內容摘自菜鳥教程:正規表示式教程
正規表示式簡單語法及常用正規表示式
基本符號 表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 表示匹配 零次到多次 表示匹配 一次到多次 至少有一次 表示匹配零次或一次 表示匹配單個字元 表示為或者,兩項中取一項 小括號表示匹配括號中全部字元 中括號表示匹配括號中乙個字元 ...
正規表示式簡單語法及常用正規表示式
表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff 匹配空行的正規表示式 n s r 匹配html標記的正規表示式 匹配首尾空格的正規表示式 s...
正規表示式語法及常用的正規表示式
語法請進 看,很詳細 很好 就不複製了。常用正規表示式 正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xf...