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, 匹配位置,原字符串 |