標籤:
Regex基礎文法
1.1匹配不同類型的字元
字元類 |
匹配的字元 |
| \d |
匹配一個數字字元。等價於 [0-9]。 |
| \D |
匹配一個非數字字元。等價於 [^0-9]。 |
| \w |
匹配包括底線的任何單詞字元。等價於‘[A-Za-z0-9_]‘。 |
| \W |
匹配任何非單詞字元。等價於 ‘[^A-Za-z0-9_]‘。 |
| \s |
匹配任何空白字元,包括空格、定位字元、換頁符等等。等價於 [ \f\n\r\t\v]。 |
| \S |
匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。 |
| .(點號) |
任一字元 |
| […] |
括弧中的任一字元 |
| [^…] |
非括弧中的任一字元 |
1.2定位控制字元
| ^ |
其後的模式必須在字串的開始處,如果是多行則在任一行的開始C#需要設定Multiline標誌 |
| $ |
前面的模式必須在一行的末尾,如果是多行,則在任意行的末尾 |
| \A |
前面的模式必須在字串的開始處;多行標誌被忽略 |
| \z |
前面的模式必須在字串的末尾處,多行標誌被忽略 |
| \Z |
前面的模式必須位於字串的末尾或位於分行符號前 |
| \b |
匹配一個單詞字元的開始,單詞字元是[a-zA-Z0-9]中的一位 |
| \B |
匹配一個非單詞邊界的位置, 不在一個單詞的開始 |
1.3指定重複字元
| {n} |
匹配前面的字元n次 |
| {n,} |
匹配前面的字元最少n次 |
| {n,m} |
匹配前面的字元n至m次 |
| ? |
匹配前面的字元0次或1次 |
| + |
匹配前面的字元至少1次 |
| * |
匹配前面的字元至少0次 |
1.4特殊控制類
| | |
指定字元替換,即該位置可以是|兩邊的任一個運算式 |
1.5 特殊字元逸出序列
| \\ |
匹配“\” |
| \. |
匹配”.“ |
| \* |
匹配”*“ |
| \( |
匹配”(” |
| \) |
匹配“)” |
| \? |
匹配”?” |
| \+ |
匹配”+“ |
| \| |
匹配”|“ |
| \{ |
匹配”{“ |
| \} |
匹配”}“ |
| \^ |
匹配”^“ |
| \$ |
匹配”$“ |
| \n |
匹配分行符號 |
| \r |
匹配斷行符號 |
| \t |
匹配Tab鍵 |
| \v |
匹配垂直定位字元 |
| \f |
匹配換頁符 |
| \nnn |
匹配一個三位八位元指定的ASCII字元,如\103匹配C |
| \xnn |
匹配一個二位16進位數指定的ASCII字元,例如\x43匹配C |
| \unnnn |
匹配一個4位16進位數指定的Unicode字元 |
| \cV |
匹配一個控制字元,(如複製Ctrl+C) |
常用正則驗證規則
1. 檢測使用者名稱
要求:5到17位字元由字母開頭、數字及英文符號組合
Regex:/^[a-zA-Z][[email protected]~!?]{4,16}$/
2. 檢測密碼
要求:8到17位字元由字母、數字及英文符號組合
Regex:/^[[email protected]~!?]{8,17}$/
3. 檢測手機號
要求:精準匹配所有手機號,包括移動、聯通、電信
Regex:/^(((13[4-9])|147|(15[0-27-9])|178|(18[2-47-8]))[0-9]{8})|((170[356])[0-9]{7})
|(((13[0-2])|145|(15[56])|(18[56])|17[16])[0-9]{8})|((170[4789])[0-9]{7})
|((133|153|(18[019])|177)[0-9]{8})|((170[0-2])[0-9]{7})$/
4. 匹配URL網址
要求:http://和www.可有可沒有
例如:www.baidu.com 、 baidu.com、http://www.baidu.com、https://i.cnblogs.com/EditPosts.aspx?opt=1
Regex:/^(((https|http|ftp|):\/\/)?(www\.)?([\w_\-\.]{0,61})+(\.\w{2,10})+(\/)?[\[email protected]&=#\-\.\/]{0,})|(#)$/
Regex學習和常用正則驗證規則(包括使用者名稱,密碼,手機號,網址等)