元字元和字元類
元字元
正規表示式由兩種基本字元型別組成:
1.原義(正常)文字字元:代表本身含義的字元,如:a、b、c、1、2、3等。
2.元字元:元字元是在正規表示式中有特殊含義的非字母字元,如代表單詞邊界,可以是單詞的開頭或結尾。
常見的符號元字元:
*+?$^.|(){}[]
字元類
一般情況下,正規表示式一個字元對應字串一個字元。比如,表示式ab
的含義就是ab
加上一個
(水平製表符)。
但是,很多時候,我們不想匹配某個字元,而想匹配某類字元。此時,我們可以使用元字元[]
來構建一個簡單的類。
所謂類是指符合某些特性的物件,一個泛指,而不是特指某個字元。表示式[abc]
把字元a
或b
或c
歸為一類,可以匹配這類字元。
示例:
let reg = /[abc]/g
let text = `a1b2c3d4e5`
text.replace(reg, `X`) // X1X2X3d4e5
可以發現,當正規表示式匹配到a
或b
或c
時,自動替換為X
字元類取反
很多時候回碰到這麼一種情況,即不想匹配某些字元,其他都匹配。此時,可以使用字元類取反——使用元字元`^建立反向類,即不屬於某類的內容。
表示式[^abc]
表示不是字元a
或b
或c
的內容。
示例:
let reg = /[^abc]/g
let text = `a1b2c3d4e5`
text.replace(reg, `X`) // aXbXcXXXXX
結果表明,當表示式匹配到a
或b
或c
時,不進行處理,其餘的字元都轉換為了X