元字符是一些在正則表達(dá)式中有特殊用途、不代表它本身字符意義的一組字符。 1、 字符元字符[…] 匹配列表中的任意字符 [^…] 匹配不在列表中的任意字符 . 匹配除了回車和換行符之外的任何字符 \w 元符號,相當(dāng)于[a-zA-Z0-9_],匹配任何字母、數(shù)字、下劃線字符,這樣的字符也稱為單詞字符 \W 元符號,相當(dāng)于[^a-zA-Z0-9_],匹配除了字母、數(shù)字、下劃線字符之外的任何字符 \d 元符號,相當(dāng)于[0-9],匹配任何單個的數(shù)字字符 \D 元符號,相當(dāng)于[^0-9],匹配除了數(shù)字之外的任何單個字符 \s 元符號,匹配空白字符,空白字符是指空格、Tab字符和回車換行符 \S 元字符,匹配任何非空白字符
2、重復(fù)元字符x? 匹配0個或1個x。 x+ 匹配1個或多個x。 x* 匹配0個或多個x。 x{n} 匹配n個x。 x{n,} 匹配n個或多個x。 x{n,m} 匹配n到m個x。
3、定位元字符^ 匹配必須出現(xiàn)在字符串的開頭或行的開頭(開頭) $ 匹配必須出現(xiàn)在以下位置:字符串結(jié)尾、字符串結(jié)尾處的 \n 之前或行的結(jié)尾。(結(jié)尾) \b 匹配單詞的開始或結(jié)束 \B 匹配非單詞的開始或結(jié)束 x(?=y) 正向肯定預(yù)查。只有在x后面跟上y時,才匹配x成功。(正向等=) x(?!y) 正向否定預(yù)查。只有在x后面不跟著y時,才匹配x成功。 (正向不等!) (?<=x)y:反向肯定預(yù)查。只有在y前面跟x時,才匹配y 成功。Javascript不支持。(反向等,為在正向等前加<) (?<!x)y: 反向否定預(yù)查。只有在y前面不跟x時,才匹配y 成功。Javascript不支持。(反向不等,為在正向等前加<)
4、分組和替換字符x|y 匹配x或y (sub) 反向引用,將子表達(dá)式sub作為一個整體處理,括號的作用相當(dāng)于代數(shù)中括號的作用。并將捕獲的子匹配保存在\1,\2,......和$1,$2,......中。例如:/a(bc)+/ 中,加號元字符作用在子表達(dá)式bc 上,它匹配abc、abcbc,但是不匹配a和ac (?:sub) 分組子模式,但是不捕獲子模式。它的作用與(sub)類似,稱為無記憶匹配 \1,\2,\3,... 在正則表達(dá)式中,分別包含與正則表達(dá)式中第一個反向引用、第二個反向引用、第三個反向引用...相匹配的子串 $1,$2,$3,... 在替換中,分別包含與正則表達(dá)式中第一個反向引用、第二個反向引用。第三個反向引用...相匹配的子串
5、特殊字符特殊字符是指那些不容易進(jìn)行直接書面表達(dá)或不容易直接使用鍵盤輸入的字符。 \0 匹配null字符,對應(yīng)的十六進(jìn)制值為\x00 \b 匹配退格字符,對應(yīng)的十六進(jìn)制值為\x08 \n 匹配換行字符,對應(yīng)的十六進(jìn)制值為\x0A \r 匹配回車字符,對應(yīng)的十六進(jìn)制值為\x0D \f 匹配換頁字符,對應(yīng)的十六進(jìn)制值為\x0C \t 匹配制表(TAB)字符,同時對應(yīng)于水平制表符\x09和垂直制表符\x0B \xhh 匹配用2個十六進(jìn)制數(shù)字表示的字符 \uhhhh 匹配用4個十六進(jìn)制在數(shù)字表示的字符,這些字符是Unicode字符 \cchar 匹配命名的控制字符
6、需要轉(zhuǎn)義的字符. * + ( ) $ / \ ? [ ] ^ { } - ! < >
6、常見正則表達(dá)式[\u4e00-\u9fa5] 匹配任意一個漢字 [1-9]?[0-9]|100 匹配0-100的數(shù)字 \n[\s| ]*\r 匹配空行的正則表達(dá)式
|