JS正規表示式從入門到入土(2)—— 元字元和字元類

格子熊發表於2018-06-28

元字元和字元類

元字元

正規表示式由兩種基本字元型別組成:

1.原義(正常)文字字元:代表本身含義的字元,如:a、b、c、1、2、3等。

2.元字元:元字元是在正規表示式中有特殊含義的非字母字元,如代表單詞邊界,可以是單詞的開頭或結尾。

常見的符號元字元:

*+?$^.|(){}[]

字元類

一般情況下,正規表示式一個字元對應字串一個字元。比如,表示式ab 的含義就是ab加上一個 (水平製表符)。

但是,很多時候,我們不想匹配某個字元,而想匹配某類字元。此時,我們可以使用元字元[]來構建一個簡單的類。

所謂類是指符合某些特性的物件,一個泛指,而不是特指某個字元。表示式[abc]把字元abc歸為一類,可以匹配這類字元。

示例:

let reg = /[abc]/g

let text = `a1b2c3d4e5`

text.replace(reg, `X`)  // X1X2X3d4e5

可以發現,當正規表示式匹配到abc時,自動替換為X

字元類取反

很多時候回碰到這麼一種情況,即不想匹配某些字元,其他都匹配。此時,可以使用字元類取反——使用元字元`^建立反向類,即不屬於某類的內容。

表示式[^abc]表示不是字元abc的內容。

示例:

let reg = /[^abc]/g

let text = `a1b2c3d4e5`

text.replace(reg, `X`)  // aXbXcXXXXX

結果表明,當表示式匹配到abc時,不進行處理,其餘的字元都轉換為了X

相關文章