字符 匹配
\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):返回的是分割后的数组