大部分字元在正規表示式中,就是字面的含義,比如 /a/ 匹配 a, /b/ 匹配b。這種只表示它字面量含義的被稱為字面量字元。
除了字面量,還有一些字元有特殊含義,不代表字面意思,被稱為元字元
1,點字元(.)
點字元匹配除回車(\r)、換行(\n)、行分隔符(\u2028)和分段符(\u2029)之外的所有字元 注:碼點大於0xffff的unicode字元不能被匹配,因為會被認為是兩個字元。
2,位置字元
^ 表示字串的開始位置, $ 表示字串的結束位置。
3,選擇符(|)
豎線符號在正則中表示 『或關係』 , 即匹配其中之一即可。
.............等等
正則中那些有特殊含義的元字元,如果要匹配它們本身,就要在前面加反斜槓。 比如要匹配 +, 就必須寫成 \+;
在正則中,需要反斜槓轉義的一共有12個字元: ^ . [ $ ( ) | * + ? 表示,表示重複n次,表示至少重複n次,表示重複不少於n次,不多於m次。
量詞符用來設定某個模式出現的次數。
?問號表示某個模式出現0次或1次, 等同於;
* 星號表示出現0次或多次,等同於
+ 加號表示出現1次或多次, 等同於
量詞符預設情況下都是最大可能匹配,即匹配到不能匹配為止,這種模式就叫貪婪模式
/a+/ 表示匹配1個或多個a,那麼到底會匹配幾個a呢? 因為預設的是貪婪模式,所以會一直匹配到後面不是a為止。
如果想將貪婪模式改為非貪婪模式,可以在量詞後面加乙個問號。這時候一旦滿足條件,就不再往下匹配了。
*?表示某個模式出現0次或者多次,採用非貪婪模式
+?表示模式出現1次或者多次,採用非貪婪模式
g 表示全域性匹配
i 表示忽略大小寫
m 表示多行模式。會修改^和$的行為。 加了m修飾符後,^和$會識別換行符( \n )
10, 組匹配
1,正則中的括號()表示分組匹配,括號中的模式表示分組中的內容。
在正規表示式內部, 還可以使用 \n 來引用括號匹配的內容, n是從1開始,表示對應順序的括號
/(.)b(.)\1b\2/.test('abcabc'); \1匹配了第乙個括號的a, \2匹配了第二個括號的c
2,非捕獲組
(?:x)稱為非捕獲組,表示不返回該組匹配的內容。
3,先行斷言
x(?=y)稱為先行斷言。x只有在y前面才匹配,y不計入匹配結果中。
4,先行否定斷言
x(?!y) 為先行否定斷言。 x只有不在y前面才匹配。
用通俗的語句來解釋上面的這些:
x(?! y): x只有不在y前面才匹配
x(?=a): 表示在a的前面 才匹配。
x(?<= a): 表示a的後面才匹配
x(?
簡述正規表示式的一些匹配規則
正規表示式的語法規則 字元 x 含義 代表的是字元x 例如 匹配規則為 a 那麼需要匹配的字串內容就是 a 字元 含義 代表的是反斜線字元 例如 匹配規則為 那麼需要匹配的字串內容就是 字元 t 含義 製表符 例如 匹配規則為 t 那麼對應的效果就是產生乙個製表符的空間 字元 n 含義 換行符 例如...
正規表示式 匹配規則
一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once這個模式包含乙個特殊的字元 表示該模式只匹配那些以once開頭的字串。例如該模式與字串 on...
正規表示式 匹配規則
一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once這個模式包含乙個特殊的字元 表示該模式只匹配那些以once開頭的字串。例如該模式與字串 on...