主頁 > 知識庫 > 正則表達(dá)式字符類加深理解

正則表達(dá)式字符類加深理解

熱門標(biāo)簽:服務(wù)器配置 團(tuán)購網(wǎng)站 阿里云 科大訊飛語音識別系統(tǒng) 電子圍欄 Linux服務(wù)器 Mysql連接數(shù)設(shè)置 銀行業(yè)務(wù)

正則表達(dá)式字符類加深理解:
一.基本概念:
字符類相對來說是比較簡單的,但是也有可能由于理解不夠深入或者大意造成一些誤區(qū),下面再來做一下介紹。
字符類[]能夠匹配包含在中括號中的一系列字符中的任意一個,但是匹配的結(jié)果只能夠是其中的一個而不是多個,例如:

var str="abcd";
var reg=/[abcd]/;
console.log(str.match(reg));

以上正則表達(dá)式只能夠匹配字符"a"。
二.使用連字符"-":
字符類可以使用連字符"-"來確定一個匹配的范圍,當(dāng)然使用連字符也是有原則的,前后兩個字符是有順序的,如果使用相同的編碼,后面的字符碼位應(yīng)大于或等于前面字符的碼位,例如:

[0-9]//正確的
[9-0]//錯誤的

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

var str="abc.efcd";
var reg=/c\./g;
console.log(str.match(reg));

以上正則中,在點號前面添加了反斜杠進(jìn)行轉(zhuǎn)義,所以只會匹配字符串"c.",否則也會匹配"cd"。
但是在字符類中絕大多數(shù)元字符都不需要進(jìn)行轉(zhuǎn)義,必須要進(jìn)行轉(zhuǎn)義的字符只有"\",字符"^"和"-"是否需要轉(zhuǎn)義要看具體的應(yīng)用場景,代碼實例如下:
實例一:

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));

以上代碼為匹配反斜杠必須要進(jìn)行轉(zhuǎn)義。
實例三:

var str="ab-c^569";
var reg=/[\^0\-9]/g;
console.log(str.match(reg));

在以上代碼中"^"和"-"已經(jīng)不具有特殊意義了,而是表示它們本身,因為使用了轉(zhuǎn)義。
實例四:

var str="ab-c^569";
var reg=/[-a^c0]/g;
console.log(str.match(reg));

上面的代碼"-"和"^"就沒有進(jìn)行轉(zhuǎn)義,這是因為它們所在點位置使它們失去了特殊意義。
字符類中也可以使用轉(zhuǎn)義字符:
代碼實例如下:

var str="abc|12";
var reg=/[\w]/g;
console.log(str.match(reg));

特別注意:\b在字符類外表示單詞邊界,但是在字符類內(nèi)[\b]表示退格符。
四.排除型字符類:
[^]是一個排除型字符類,用以匹配不在中括號中的任一字符,當(dāng)然匹配結(jié)果也只能夠是一個字符,例如:

[^antzone]

以上正則可以匹配除了字符"a"、"n"、"t"、"z"、"o"、"n"和"e"之外的任意字符。
排除型字符類同樣也支持連字符"-",例如:

[^0-9]

可以匹配除了數(shù)字之外的其他字符。

您可能感興趣的文章:
  • 正則表達(dá)式(regex)或操作符”|“使用易出現(xiàn)功能Bug
  • Java正則表達(dá)式處理特殊字符轉(zhuǎn)義的方法
  • 正則表達(dá)式\d元字符(相對于數(shù)字0-9)
  • 正則表達(dá)式\W元字符使用方法
  • 正則表達(dá)式\w元字符使用介紹
  • 利用正則表達(dá)式判斷一個給定的字符是否是回文
  • 使用正則表達(dá)式替換報表名稱中的特殊字符(推薦)
  • C#正則表達(dá)式轉(zhuǎn)義字符介紹
  • 正則表達(dá)式匹配任意字符(包括換行符)的寫法
  • 正則表達(dá)式匹配不包含某些字符串的技巧
  • 正則表達(dá)式教程之操作符及說明詳解

標(biāo)簽:蚌埠 衡水 大理 萍鄉(xiāng) 廣元 江蘇 棗莊 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《正則表達(dá)式字符類加深理解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266