字符 匹配
o null
制表符
换行符
v 垂直制表符
f 换页符
回车符
xnn 由十六进制nn指定的拉丁字符 如xoA等价于
uxxx 有十六进制数xxxx指定的Unicode字符,如u00009等价于
cX 控制字符^X,如cJ等价于
[…] 方括号内的任意字符
[^…] 不在方括号内的任意字符
. 出换行符和其他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个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也有可能是嵌套的),组索引是从左到右的左括号数,(?:形式的分组不编码
^ 匹配字符串的开头,在多行检索中,匹配一行的开头
$ 匹配字符串的结尾,在多行检索中,匹配一行的结尾
匹配一个单词的边界,简言之,就是位于字符w和W之间的位置,或位于字符w和字符串的开头或结尾之间的位置(注意:[]匹配的是退格符)
B 匹配一个非单词的边界的位置
(?=p) 零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括匹配p的那些字符
(?!p) 零宽正向先行断言,要求接下来的字符都与不p匹配
修饰符
i g m 是放在“/”符号之外的,也就是说,他们不是出现在两条斜线之间,而是第二条斜线之后
i:执行不区分大小写的匹配
g:执行一个全局匹配,简言之,即找到所有的匹配,而不是在找到第一个之后就停止
m:多行匹配模式,^匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束
用于模式匹配的string方法:
Search(regx):返回第一个与之匹配的子串的起始位置,如果找不到匹配的子串,返回-1
Replace(regx,replacestr):检索和替换
Match(regx):返回的是一个有匹配结果组成的数组
Split(regx):返回的是分割后的数组