元字符是一些在正則表達式中有特殊用途、不代表它本身字符意義的一組字符。
* [...]
匹配列表中給出的任何字符。該列表可以是一個字符,也可以是多個字符,還可以是使用“-”表示的字符范圍。例如[a]表示匹配單個字母a,[ab]表示匹配字母a或字母b,[a-z]表示匹配任何一個小寫字母,[0-9]表示匹配任何單個的數字,[a-z0-9]表示匹配任何單個的小寫字母或數字,等等
* [^...]
匹配列表中沒有給出的任何單個字符。該元字符與[...]的意義剛好相反。例如:[^a]表示匹配任何不是字母a的字符,[^ab]表示任何不是字母a或字母b的字符,[^a-z]表示任何不是小寫字母的任何字符,等等
* .
匹配除了回車和換行符之外的任何字符
* \w
元符號,相當于[a-zA-Z0-9_],匹配任何字母、數字、下劃線字符,這樣的字符也稱為單詞字符
* \W
元符號,相當于[^a-zA-Z0-9_],匹配除了字母、數字、下劃線字符之外的任何字符
* \d
元符號,相當于[0-9],匹配任何單個的數字字符
* \D
元符號,相當于[^0-9],匹配除了數字之外的任何單個字符
* \s
元符號,匹配空白字符,空白字符是指空格、Tab字符和回車換行符
* \S
元字符,匹配任何非空白字符
* ^
匹配字符串的開始位置,或多行匹配模式中(\m)每一行的開始位置
* $
匹配字符串的結束位置,或多行匹配模式下(\m)每一行的結束位置
* \b
匹配單詞邊界。這個元字符用于單詞匹配。單詞邊界有4種形式:
1、當字符串第一個字符是單詞字符時,位于第一個字符前面;
2、當字符串最后一個字符是單詞字符時,位于最后一個字符后面;
3、在單詞字符和非單詞字符之間,緊跟在單詞字符后面;
4、在非單詞字符和單詞字符之間,緊跟在非單詞字符后面
* \B
匹配非單詞邊界,這個元字符匹配\b不匹配的每一個位置
* x(?=y)
正向前查匹配。也就是說,只有在x后面跟上y時,才匹配x成功。例如:使用正則表達式/Hello(?=World)/進行匹配時,只有Hello后面跟著World時匹配才算成功,所以,這個正則表達式匹配HelloWorld,但是不匹配Hello,也不匹配Hello123
* x(?!y)
反向前查匹配。只有在x后面不跟著y時,才匹配x成功。例如:在使用正則表達式/Hello(?!World)/進行匹配時,只有Hello后面不跟著World時才匹配成功。所以這個正則表達式匹配Hello,也匹配Hello123(同時也匹配里面的Hello),但是不匹配HelloWorld