正規表示式的一些匹配規則

2022-07-25 03:24:06 字數 1382 閱讀 7059

大部分字元在正規表示式中,就是字面的含義,比如 /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...