1、1个字符
. | 除换行符外 | -- |
d | 数字 | [0-9] |
D | 非数字 | [^0-9] |
w | 数字字母下划线 | [0-9a-zA-Z_] |
W | 非数字字母下划线 | [^0-9a-zA-Z_] |
s | 空格 | -- |
S | 非空格 | -- |
2、特殊符号与边界
[] | 匹配[]内任意1个字符 |
(exp) | 捕获性分组 |
(?:exp) | 非捕获性分组 |
(?=exp) | 非捕获性分组,出现exp则匹配 |
(?!exp) | 非捕获性分组,不出现exp则匹配 |
a|b | 匹配a或b |
^ | 匹配开头 |
$ | 匹配结尾 |
匹配单词边界 | |
B | 匹配非单词边界 |
3、重复
? | 重复0-1次 | {0,1} |
* | 重复>=0次 | {0,} |
+ | 重复>=1次 | {1,} |
{n} | 重复n次 | -- |
{n,} | 重复>=n次 | -- |
{m,n} | 重复m-n次 | -- |
4、贪婪与惰性匹配
贪婪 | 惰性 |
---|---|
? | ?? |
* | *? |
+ | +? |
5、反向引用
由()标识的分组从1开始编号。
用于表达式中,匹配之前出现过的字符串 | |
$n | 用于匹配结束后获取捕获的分组,如str.replace(reg, '$1'),RegExp.$1 |
7、可选参数
用法:/exp/gi
i | 大小写不敏感(默认敏感) |
g | 全局匹配(默认只匹配1次) |
m | 支持多行 |
8、相关方法
String对象 | RegExp对象 |
---|---|
match(pattern) : Array,匹配位置,原字符串 split(pattern) : Array search(pattern) : 匹配位置 replace(pattern, str) : string |
test(str) : Bool exec(str) : Array, 匹配位置,原字符串 |