正則表達式字符類的詳細介紹

正則表達式字符類的詳細介紹

正則表達式字符類加深理解:

一.基本概念:

字符類相對來說是比較簡單的,但是也有可能由於理解不夠深入或者大意造成一些誤區,下面再來做一下介紹。

字符類[]能夠匹配包含在中括號中的一系列字符中的任意一個,但是匹配的結果隻能夠是其中的一個而不是多個,例如:

var str="abcd";

var reg=/[abcd]/;

console.log(str.match(reg));

以上正則表達式隻能夠匹配字符"a"。

二.使用連字符"-":

字符類可以使用連字符"-"來確定一個匹配的范圍,當然使用連字符也是有原則的,前後兩個字符是有順序的,如果使用相同的編碼,後面的字符碼位應大於或等於前面字符的碼位,例如:

[0-9]//正確的

[9-0]//錯誤的

三.字符類中的特殊字符是否需要轉義:

大部分在正則中有特殊意義的字符在匹配其本身時需要進行轉義,例如"."可以匹配任意字符,"$"用來匹配字符串的結尾,在字符類中就不需要進行轉義,代碼實例如下:

var str="abc.efcd";

var reg=/c\./g;

console.log(str.match(reg));

以上正則中,在點號前面添加瞭反斜杠進行轉義,所以隻會匹配字符串"c.",否則也會匹配"cd"。

但是在字符類中絕大多數元字符都不需要進行轉義,必須要進行轉義的字符隻有"\",字符"^"和"-"是否需要轉義要看具體的應用場景,代碼實例如下:

實例一:

var str="ab$c.efcd";

var reg=/[$.]/g;

console.log(str.match(reg));

以上代碼可以匹配字符串中的"$"和"."本身。

實例二:

var str="a\\b$c.efcd";

var reg=/[\\$.]/g;

console.log(str.match(reg));

以上代碼為匹配反斜杠必須要進行轉義。

實例三:

var str="ab-c^569";

var reg=/[\^0\-9]/g;

console.log(str.match(reg));

在以上代碼中"^"和"-"已經不具有特殊意義瞭,而是表示它們本身,因為使用瞭轉義。

實例四:

var str="ab-c^569";

var reg=/[-a^c0]/g;

console.log(str.match(reg));

上面的代碼"-"和"^"就沒有進行轉義,這是因為它們所在點位置使它們失去瞭特殊意義。

字符類中也可以使用轉義字符:

代碼實例如下:

var str="abc;

var reg=/[\w]/g;

console.log(str.match(reg));

特別註意:\b在字符類外表示單詞邊界,但是在字符類內[\b]表示退格符。

四.排除型字符類:

[^]是一個排除型字符類,用以匹配不在中括號中的任一字符,當然匹配結果也隻能夠是一個字符,例如:

[^antzone]

以上正則可以匹配除瞭字符"a"、"n"、"t"、"z"、"o"、"n"和"e"之外的任意字符。

排除型字符類同樣也支持連字符"-",例如:

[^0-9]

可以匹配除瞭數字之外的其他字符。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *