規則符號
正則分類 | 符號 | 含義 | 備註 |
匹配位置 | ^ | 開頭 | |
$ | 結尾 | ||
預定義 | \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-./?%&=]*)?$ |