1.元字符
在正則表達式中,包括2種字符:
(1)普通字符(普通字符就是a~z、0~9這類常見的字符)
(2)特殊字符(元字符)
元字符表正則表達式
元字符 | 說明 |
---|---|
\d | 匹配數字,至關於[0-9] |
\D | 匹配非數字,至關於[^0-9] |
\w | 匹配一個單字字符,至關於[A-Za-z0-9_] |
\W | 匹配一個非單字字符,至關於[^A-Za-z0-9_] |
\s | 匹配一個空白字符,包括空格、製表符、換頁符和換行符 |
\S | 匹配一個非空白字符 |
\r | 匹配一個回車符 (U+000D) |
\n | 匹配一個換行符 (U+000A) |
\f | 匹配一個換頁符 (U+000C) |
. | (小數點)匹配除換行符以外的任何單個字符。 |
[...] | 匹配方括號內的任一字符 |
[^...] | 匹配非方括號中的任一字符 |
注意:
方括號又叫字符組,注意某些元字符在字符組外和字符組內的意義不一樣。例如:^在字符組外匹配行的開頭,在字符組內表示排除型字符;-在字符組外匹配普通連字符號,在字符組內(不在開頭)表示一個範圍;問號和點號在字符組外一般是元字符,但在字符組內只是匹配普通字符而已
2.鏈接符-bash
鏈接符 | 說明 |
---|---|
[0-9] | 匹配數字,等價於\d |
[a-z] | 匹配英文小寫字母 |
[A-Z] | 匹配英文大寫字母 |
[a-zA-Z0-9] | 匹配數字或者任意字母 |
3.限定符
限定某個或某類字符出現的次數,如下n,m是一個正整數ide
限定符 | 說明 |
---|---|
+ | 重複1次或者更屢次(≥1) |
? | 重複0次或者1次(≤1)。若是緊跟在任何量詞 *、 +、? 或 {} 的後面,將會使量詞變爲非貪婪的(匹配儘可能少的字符),和缺省使用的貪婪模式(匹配儘量多的字符)正好相反。 |
* | 任意次數 |
{n} | 重複n次 |
{n,} | 最少n次(≥n) |
{n,m} | 重複n到m次(≥n&&≤m) |
4.定位符
限定某些字符出現的位置ui
定位符 | 說明 |
---|---|
^ | 限定開始位置的字符 |
$ | 限定結尾位置的字符 |
\b | 匹配一個詞的邊界。可是[\b]很特殊,是匹配一個退格(U+0008) |
\B | 匹配一個非單詞邊界 |
5.轉義字符
匹配正則表達式中的特殊字符,咱們就必須在該特殊字符前面加上反斜槓「\」將其進行轉義 例如:
$、(、)、*、+、.、[、]、?、\、/、^、{、}、|
6.分組符
用小括號()括起來的表達式看出一個總體來處理
7.選擇符
選擇符|選擇匹配2個選項之中的任意一個
8.註釋
(?#註釋的內容)
9.正則表達式標誌spa
標誌 | 說明 |
---|---|
g | 全局搜索 |
i | 不區分大小寫 |
m | 多行搜索 |
y | 執行「粘性」搜索,匹配從目標字符串的當前位置開始,能夠使用y標誌 |
例子:code
/Mango/i.test('mango')
返回true
複製代碼
詳細請查看:developer.mozilla.org/zh-CN/docs/…cdn
特殊需求表達式Email地址:blog
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
複製代碼
手機號碼:ip
^(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}$
複製代碼
身份證號(15位、18位數字):字符串
^\d{15}|\d{18}$
複製代碼
2 到 9 位中文暱稱:
^[\u4e00-\u9fa5]{2,9}$
複製代碼
帳號/密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):
^[a-zA-Z]\w{5,17}$
複製代碼
匹配HTML Tag
<("[^"]*"|'[^']*'|[^'">])*>
複製代碼