在遇到需要用正則校驗資料時,往往是在網上去找很久,結果找來的還是不很符合要求。所以我最近把開發中常用的一些
正規表示式
整理了一下,在這裡分享一下。就當作筆記
1.基礎
\d 匹配乙個數字字元。等價於[0-9]。grep 要加上-p,perl正則支援
\d 匹配乙個非數字字元。等價於[^0-9]。grep要加上-p,perl正則支援
\f 匹配乙個換頁符。等價於\x0c和\cl。
\n 匹配乙個換行符。等價於\x0a和\cj。
\r 匹配乙個回車符。等價於\x0d和\cm。
\s 匹配任何不可見字元,包括空格、製表符、換頁符等等。等價於[ \f\n\r\t\v]。
\s 匹配任何可見字元。等價於[^ \f\n\r\t\v]。
\t 匹配乙個製表符。等價於\x09和\ci。
\v 匹配乙個垂直製表符。等價於\x0b和\ck。
\w 匹配包括下劃線的任何單詞字元。類似但不等價於「[a-za-z0-9_]」,這裡的」單詞」字元使用unicode字符集。
\w 匹配任何非單詞字元。等價於「[^a-za-z0-9_]」。
\xn 匹配n,其中n為十六進製制轉義值。十六進製制轉義值必須為確定的兩個數字長。例如,「\x41」匹配「a」。「\x041」則等價於「\x04&1」。正規表示式中可以使用ascii編碼。
\num 匹配num,其中num是乙個正整數。對所獲取的匹配的引用。例如,「(.)\1」匹配兩個連續的相同字元。
\n 標識乙個八進位制轉義值或乙個向後引用。如果\n之前至少n個獲取的子表示式,則n為向後引用。否則,如果n為八進位制數字(0-7),則n為乙個八進位制轉義值。
\nm 標識乙個八進位制轉義值或乙個向後引用。如果\nm之前至少有nm個獲得子表示式,則nm為向後引用。如果\nm之前至少有n個獲取,則n為乙個後跟文字m的向後引用。如果前面的條件都不滿足,若n和m均為八進位制數字(0-7),則\nm將匹配八進位制轉義值nm。
\nml 如果n為八進位制數字(0-7),且m和l均為八進位制數字(0-7),則匹配八進位制轉義值nml。
2.常用
^[0-9]*$
數字 ^\d$
m-n位的數字
^[0-9]+(.[0-9])?$
有兩位小數的正實數
^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
浮點數
^(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$
手機號碼
/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.)[a-z0-9]+$/
email位址
[a-za-z0-9][-a-za-z0-9](/.[a-za-z0-9][-a-za-z0-9])+/.?
網域名稱 [a-za-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
url
^\d|\d$
身份證號(15位、18位數字)
^\d-\d-\d
日期格式
[\u4e00-\u9fa5]
中文字元的正規表示式
^[ァ-ヶー]$
日語的正規表示式
/x3130-/x318f
(韓文
/xac00-/xd7a3
(韓文)
[1-9][0-9]
[1-9]\d(?!\d)
^(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5])$
ip位址
^([a-za-z]+-?)+[a-za-z0-9]+\\.[x|x][m|m][l|l]$
xml檔案
^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
正浮點數
工作中常用的正規表示式
1 手機號 第一位是開頭,第二位則則有 3,4,5,7,8 第三位則是 0 9 第三位之後則是數字 0 9 從而我們可以得出乙個符合當前的手機號碼驗證正規表示式。var reg 1 3 4 5 7 8 0 9 驗證規則 var phonenum 15507621999 手機號碼 var flag r...
業務中常用的正規表示式總結
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x...
python中常用正規表示式
print re.findall d 123abc 數字 1 2 3 print re.findall d abcaa123abc 非數字 a b c a a a b c print re.findall abc 123abcaaabc abc abc print re.findall aa nab...