正則表達式規則和常用案例

規則符號

正則分類 符號 含義 備註
匹配位置 ^ 開頭  
$ 結尾  
預定義 \d 1個數字 對常用字符集的簡化
\b 單詞邊界
\w 1個數字或字母
\s 1個空字符(空格、換行、tab)
. 匹配除了回車、換行外的所有字符
反義 \D 匹配任意非數字的字符 字母大寫,意思與預定義相反。
\B 匹配不是單詞開頭或結束的位置
\W 匹配任意不是字母,數字,下劃線 的字符
\S 匹配任意不是空白符的字符
[^X] 除了X都行 排除,^只能放開頭。
量詞 {n,m} 至少n次,至多m次 字符集寫在量詞前面。
量詞修飾相鄰的前一個(左側)字符集。
{n,} 至少n次
{n} 必須n次
? 至多1次
* 可有可無
+ 至少一次
懶惰限定符 *? 重複任意次,但儘可能少重複 儘可能少重複
+? 重複1次或多次,但儘可能少重複
?? 重複0次或1次,但儘可能少重複
{n,m}? 重複n到m次,但儘可能少重複
{n,}? 重複n次以上,但儘可能少重複
簡寫 [A-Za-z] 1個字母 中間字符連續,可用 - 省略簡寫。
[0-9] 1個數字
[\u4e00-\u9fa5] 1個漢字
轉義字符 \ 使特殊字符變爲普通字符被識別,如 \+ 告訴瀏覽器轉義字符後爲原文
選擇 規則1|規則2 或者 滿足一個規則即可
分組 () 將多個字符集用()包裹 爲了讓一個量詞修飾多個字符集
(exp) 匹配exp,並捕獲文本到自動命名的組裏 捕獲分組
(?<name>exp) 匹配exp,並捕獲文本到名稱爲name的組裏
(?:exp) 匹配exp,不捕獲匹配的文本,也不給此分組分配組號
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp後面的位置
(?!exp) 匹配後面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

 

常用案例

常見案例 規則描述 正則表達式
身份證號 公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次爲:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。 \d{15}(\d{2}[0-9xX])?
\d{17}[\d|x|X]|\d{15}
手機號 11位手機號 ^1[0-9]{10}$
11位手機號,約束第二位爲 3 4 5 7 8 ^1[34578]\d{9}$
郵箱 郵箱不區分大小寫 \w 匹配數字母下劃線 中括號裏是小寫字母或0-9數字 後面+是一個或多個 轉義一個點  任意多個字母 /^\w+@[a-z0-9]+\.[a-z]+$/i
  ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
密碼 至少8字符 至少1大寫字母 至少1小寫字母 至少1數字字符 至少1特殊字符 /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/
至少8-16個字符,至少1個大寫字母,1個小寫字母和1個數字,其他字符任意 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線 ^[a-zA-Z]\w{5,17}$
必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在 8-10 之間 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
必須包含大小寫字母和數字的組合,可以使用特殊字符,長度在8-10之間 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
域名   [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
InternetURL   [a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章