工作中常用的正則表達式總結(jié)

在遇到需要用正則校驗數(shù)據(jù)時,往往是在網(wǎng)上去找很久,結(jié)果找來的還是不很符合要求。所以我最近把開發(fā)中常用的一些正則表達式整理了一下,在這里分享一下。就當(dāng)作筆記

1.基礎(chǔ)

\d 匹配一個數(shù)字字符。等價于[0-9]。grep 要加上-P,perl正則支持

\D 匹配一個非數(shù)字字符。等價于[^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為十六進制轉(zhuǎn)義值。十六進制轉(zhuǎn)義值必須為確定的兩個數(shù)字長。例如,“\x41”匹配“A”?!癨x041”則等價于“\x04&1”。正則表達式中可以使用ASCII編碼。

\num 匹配num,其中num是一個正整數(shù)。對所獲取的匹配的引用。例如,“(.)\1”匹配兩個連續(xù)的相同字符。

\n 標識一個八進制轉(zhuǎn)義值或一個向后引用。如果\n之前至少n個獲取的子表達式,則n為向后引用。否則,如果n為八進制數(shù)字(0-7),則n為一個八進制轉(zhuǎn)義值。

\nm 標識一個八進制轉(zhuǎn)義值或一個向后引用。如果\nm之前至少有nm個獲得子表達式,則nm為向后引用。如果\nm之前至少有n個獲取,則n為一個后跟文字m的向后引用。如果前面的條件都不滿足,若n和m均為八進制數(shù)字(0-7),則\nm將匹配八進制轉(zhuǎn)義值nm。

\nml 如果n為八進制數(shù)字(0-7),且m和l均為八進制數(shù)字(0-7),則匹配八進制轉(zhuǎn)義值nml。

\un 匹配n,其中n是一個用四個十六進制數(shù)字表示的Unicode字符。例如,\u00A9匹配版權(quán)符號(?)。

2.常用

^[0-9]*$數(shù)字

^\d{m,n}$m-n位的數(shù)字

^[0-9]+(.[0-9]{2})?$有兩位小數(shù)的正實數(shù)

^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$浮點數(shù)

^(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{8}$手機號碼

/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/Email地址

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?域名

[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$URL

^\d{15}|\d{18}$身份證號(15位、18位數(shù)字)

^\d{4}-\d{1,2}-\d{1,2}日期格式

[\u4e00-\u9fa5]中文字符的正則表達式

^[ァ-ヶー]{1,45}$日語的正則表達式

/x3130-/x318F(韓文

/xAC00-/xD7A3(韓文)

[1-9][0-9]{4,}騰訊QQ號

[1-9]\d{5}(?!\d)中國郵政編碼

^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|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]*))$正浮點數(shù)

密碼必須包含:半角數(shù)字、大寫英文,小寫英文、標點符號這4類中至少3種:^(?![0-9a-z]+$)(?![0-9A-Z]+$)(?![0-9!#\$%&=|\-\^@\[:\]\,\./\+\?]+$)(?![a-z!#\$%&=|\-\^@\[:\]\,\./\+\?]+$)(?![a-zA-Z]+$)(?![A-Z!#\$%&=|\-\^@\[:\]\,\./\+\?]+$)[a-zA-Z0-9!#\$%&=|\-\^@\[:\]\,\./\+\?]{8,16}$(特殊字符根據(jù)需要添加,個別字符需要轉(zhuǎn)譯)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容