最近學習了正規表示式,趁還熱乎,寫下這篇部落格,記錄一下。正規表示式(英語:regular expression,在**中常簡寫為regex)。
正規表示式是乙個字串,使用單個字串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正規表示式通常被用來檢索、替換那些符合某個規則的文字,也可以用來提取字串。幾個常用的地方:驗證輸入(譬如手機號校驗)、資料清洗(爬取網頁並獲取想要資料)、文字替換。
字元描述
[abc]
代表匹配的是字元a 或 b 或 c
[^abc]
代表匹配除了 a、b 或 c以外的任何字元
[a-za-z]
代表匹配a 到 z 或 a 到 z
[0-9]
代表匹配0到9
[a-za-z_0-9]
代表的字母或數字或下換線
.匹配乙個任意字元。如果使用」.」的話,使用匹配規則」\.」來實現
\s匹配任意乙個空白字元,空格、回車、製表符、換頁符等都是空白字元。例如:a\sc 可以配 a\nc。
\d代表匹配0到9數字,相當於[0-9]
\w代表的字母或數字或下劃線,相當於[a-za-z_0-9]
字元描述
^匹配輸入字串開始的位置。
$匹配輸入字串結尾的位置。
\b匹配乙個字邊界,即字與空格間的位置。(相當於單詞之間的空格 )
\b非字邊界匹配。
字元描述
*匹配前面的子表示式零次或多次。例如: 「lo*」 能匹配 「l」 以及 「loo」或更多o。
+匹配前面的子表示式一次或多次。例如: 「lo+」 能匹配 「lo」 以及 「loo」或更多o。
?匹配前面的子表示式零次或一次。例如: 「lo?」 可以匹配 「l」,」lo」。
n 是乙個非負整數。匹配確定的 n 次。例如: 「l」」 能匹配 「hello」的」l」。
n 是乙個非負整數。至少匹配n 次。例如: 「o」 不能匹配 「lo」 中的 「o」,但能匹配 「looooo」 中的所有」o」。可以與*,+ 等價使用 「」,」」。
m和n均為非負整數,其中n<=m。最少匹配 n 次且最多匹配 m 次。例如:」o」 將匹配 「looooool」 中的前三個」o」。」o」」 等價於 「o?」。
字元描述
( )標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用」\(「和」\)」。
.匹配除換行符」\n」之外的任何單字元。要匹配」.」,請使用」\.」。
[標記乙個中括號表示式的開始。要匹配」[「,請使用」\[「。
\將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如: 「n」 匹配字元」n」。」\n」 匹配換行符。序列 「\\」 匹配 「\」,而」\(」 則匹配」(「。
$」表示從頭開始匹配,第乙個數字為1,後面跟10個數字。
精確的手機號匹配: 「^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])\d$」
匹配當前各大運營商對應的手機號。
身份證匹配: 「^[1-9]\d[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d([0-9xx])$」
匹配目前使用的18位身份證。
使用字母,數字組成的20位密碼: 「^(?![0-9]+$)(?![a-za-z]+$)[0-9a-za-z]$」
匹配有字母(不區分大小寫),數字組成的6-20位字元,一般用來驗證密碼。
qq號: 「^[1-9][0-9]$」
匹配5位意思的qq號。
組織機構**: 「^[a-za-z0-9]-[a-za-z0-9]」
匹配由8位數字或字母加上乙個」-「再加一位數字或字母的組織機構**
fei 正規表示式 正規表示式小結
常用的元字元常用的反義 常用的限定符 語法 說明 語法 說明 語法 說明 w 匹配字母或數字或下劃線或漢字 w匹配任意不是字母 數字 下劃線 漢字的字元 重複零次或者更多次 s匹配任意的空白字元 s匹配任意不是空白符的字元 重複一次或更多次 d匹配數字 d匹配任意非數字的字元 重複零次或一次 b匹配...
正規表示式小結
正規表示式 regex 英 red eks 1,d d d d或者是 d 表示匹配4位數的數字。2.說明。這些可被稱作元字元。匹配除換行符以外的任意字元1 jk2yh jj w數字字母漢字下劃線 bst456 5ghgtft s匹配任意的空白符 space table鍵和半全形空格 d匹配數字 di...
正規表示式小結
代表任意字元。代表0至多個。代表一至多個。b 代表單詞的開頭或結尾。b 代表不是單詞的開頭或結尾 w 代表數字 字母 下劃線 漢字。w 代表非數字 字母 下劃線 漢字。s 代表 s 代表出了 的任意字元 d 數字 d 非數字 代表字串的開始 代表字串的結尾 出現的次數。重複0次或一次 後 懶惰演算法...