字符 匹配
\o null
\t 制表符
\n 換行符
\v 垂直制表符
\f 換頁符
\r 回車符
\xnn 由十六進制nn指定的拉丁字符 如\xoA等價於\n
\uxxx 有十六進制數xxxx指定的Unicode字符,如\u00009等價於\t
\cX 控制字符^X,如\cJ等價於\n
[…] 方括號內的任意字符
[^…] 不在方括號內的任意字符
. 出換行符和其他Unicode行終止符之外的任意字符
\w 任何ASCII字符組成的單詞 等價於[a-zA-Z0-9]
\W 任何非ASCII字符組成的單詞 等價於[^a-zA-Z0-9]
\s 任何Unicode空白符
\S 任何非Unicode空白符
\d 任何ASCII數字 等價於[0-9]
\D 除了ASCII數字之外的任何字符 等價於[^0-9]
{n,m} 匹配前一項至少n次,但不能超過m次
{n, } 匹配前一項n次或更多次
{n } 匹配前一項n次
? 匹配前一項0次或1次 等價於{0,1}
+ 匹配前一項1次或多次 等價於{1,}
* 匹配前一項0次或多次 等價於{0,}
| 選擇,匹配的是該符號左邊的子表達式或右邊的子表達式
(…) 組合,將幾個項組合為一個單元,這個單元可通過*,+,?,|等符號加以修飾,而且可以記住和這個組合相匹配的字符串以供此后的引用使用
(?:…) 只組合,把項組合到一個單元,但不記憶與該組相匹配的字符
\n 和第n個分組第一次匹配的字符相匹配,組是圓括號中的子表達式(也有可能是嵌套的),組索引是從左到右的左括號數,(?:形式的分組不編碼
^ 匹配字符串的開頭,在多行檢索中,匹配一行的開頭
$ 匹配字符串的結尾,在多行檢索中,匹配一行的結尾
\b 匹配一個單詞的邊界,簡言之,就是位於字符\w和\W之間的位置,或位於字符\w和字符串的開頭或結尾之間的位置(注意:[\b]匹配的是退格符)
\B 匹配一個非單詞的邊界的位置
(?=p) 零寬正向先行斷言,要求接下來的字符都與p匹配,但不能包括匹配p的那些字符
(?!p) 零寬正向先行斷言,要求接下來的字符都與不p匹配
修飾符
i g m 是放在“/”符號之外的,也就是說,他們不是出現在兩條斜線之間,而是第二條斜線之后
i:執行不區分大小寫的匹配
g:執行一個全局匹配,簡言之,即找到所有的匹配,而不是在找到第一個之后就停止
m:多行匹配模式,^匹配一行的開頭和字符串的開頭,$匹配行的結束和字符串的結束
用於模式匹配的string方法:
Search(regx):返回第一個與之匹配的子串的起始位置,如果找不到匹配的子串,返回-1
Replace(regx,replacestr):檢索和替換
Match(regx):返回的是一個有匹配結果組成的數組
Split(regx):返回的是分割后的數組