速查表
字面量
| 模式 | 说明 |
|---|---|
| 字母、数字 | 匹配字面量本身。比如 /f/,匹配字母 "f"。 |
| \0 | 匹配 NUL 字符。 |
| \t | 匹配水平制表符。 |
| \v | 匹配垂直制表符。 |
| \n | 匹配换行符。 |
| \r | 匹配回车符。 |
| \f | 匹配换页符。 |
| \xnn | 匹配拉丁字符。比如 \xOA 等价于 \n。 |
| \uxxxx | 匹配 Unicode 字符。比如 \u2028 匹配行终止符,\u2029 匹配段终止符。 |
| \cX | 匹配 ctrl+X。比如 \cI 匹配 ctrl+I,等价于 \t。 |
| [\b] | 匹配 Backspace 键(特殊记忆)。 |
字符组
| 模式 | 说明 |
|---|---|
| [abc] | 匹配 "a"、"b"、"c" 其中任何一个字符。 |
| [a-d1-4] | 匹配 "a"、"b"、"c"、"d"、"1"、"2"、"3"、"4" 其中任何一个字符。 |
| [^abc] | 匹配除了 "a"、"b"、"c" 之外的任何一个字符。 |
| [^a-d1-4] | 匹配除了 "a"、"b"、"c"、"d"、"1"、"2"、"3"、"4" 之外的任何一个字符。 |
| . | 通配符,匹配除了少数字符(\n)之外的任意字符。 |
| \d | 匹配数字,等价于 [0-9]。 |
| \D | 匹配非数字,等价于 [^0-9]。 |
| \w | 匹配单词字符,等价于 [a-zA-Z0-9_]。 |
| \W | 匹配非单词字符,等价于 [^a-zA-Z0-9_]。 |
| \s | 匹配空白符,等价于 [ \t\v\n\r\f]。 |
| \S | 匹配非空白符,等价于 [^ \t\v\n\r\f]。 |
量词
| 模式 | 说明 |
|---|---|
{n,m} | 连续出现 n 到 m 次。贪婪模式。 |
{n,} | 至少连续出现 n 次。贪婪模式。 |
{n} | 连续出现 n 次。贪婪模式。 |
| ? | 等价于 {0,1}。贪婪模式。 |
| - | 等价于 {1,}。贪婪模式。 |
| * | 等价于 {0,}。贪婪模式。 |
{n,m}? | 连续出现 n 到 m 次。惰性模式。 |
{n,}? | 至少连续出现 n 次。惰性模式。 |
{n}? | 连续出现 n 次。惰性模式。 |
| ?? | 等价于 {0,1}?。惰性模式。 |
| +? | 等价于 {1,}?。惰性模式。 |
| *? | 等价于 {0,}?。惰性模式。 |
位置
| 模式 | 说明 |
|---|---|
| ^ | 匹配开头的位置,当正则有修饰符 m 时,表示匹配行开头位置。 |
| $ | 匹配结尾的位置,当正则有修饰符 m 时,表示匹配行结尾位置。 |
| \b | 匹配单词边界,即,\w 与 \W、^ 与 \w、\w 与 $ 之间的位置。 |
| \B | 匹配非单词边界,即,\w 与 \w、\W 与 \W、^ 与 \W,\W 与 $ 之间的位置。 |
| (?=abc) | 匹配 "abc" 前面的位置,即此位置后面匹配 "abc"。 |
| (?!abc) | 匹配非 "abc" 前面的位置,即此位置后面不匹配 "abc"。 |
括号的作用
| 模式 | 说明 |
|---|---|
| (ab) | 捕获型分组。把 "ab" 当成一个整体,比如 (ab)+ 表示 "ab" 至少连续出现一次。 |
| (?:ab) | 非捕获型分组。与 (ab) 的区别是,它不捕获数据。 |
| (good|nice) | 捕获型分支结构。匹配 "good" 或 "nice"。 |
| (?:good|nice) | 非捕获型分支结构。与 (good | nice) 的区别是,它不捕获数据。 |
| \num | 反向引用。比如 \2,表示引用的是第二个括号里的捕获的数据。 |
修饰符
| 符号 | 说明 |
|---|---|
| g | 全局匹配,找到所有满足匹配的子串。 |
| i | 匹配过程中,忽略英文字母大小写。 |
| m | 多行匹配,把 ^ 和 $ 变成行开头和行结尾。 |
String 相关实例方法
| 属性 | 方法作用说明 |
|---|---|
| search | 返回正则匹配到的第一个子串在目标字符串中的下标位置。 |
| split | 以正则匹配到的子串,对目标字符串进行切分。返回一个数组。 |
| match | 对目标字符串执行正则匹配操作,返回的匹配结果数组中包含具体的匹配信息。 |
| replace | 对目标字符串进行替换操作。正则是其第一个参数。返回替换后的字符串。 |
replace 第二个参数中的特殊字符
| 字符 | 说明 |
|---|---|
| $1,$2,…,$99 | 匹配第 1-99 个分组里捕获的文本 |
| $& | 匹配到的子串文本 |
| $` | 匹配到的子串的左边文本 |
| $' | 匹配到的子串的右边文本 |
| $$ | 美元符号 |
RegExp 相关实例方法
| 属性 | 说明 |
|---|---|
| test | 判断目标字符串中是否有满足正则匹配的子串。返回布尔值。 |
| exec | 比 match 更强大的正则匹配操作。返回结果与 match 一致。 |
RegExp 静态属性
| 属性 | 说明 |
|---|---|
| $1,…,$9 | 最近一次第 1-9 个分组捕获的数据。 |
| input | 最近一次目标字符串,可以简写成 $_ 。 |
| lastMatch | 最近一次匹配的文本,可以简写成 $& 。 |
| lastParen | 最近一次捕获的文本,可以简写成 $+ 。 |
| leftContext | 目标字符串中 lastMatch 之前的文本,可以简写成 $` 。 |
| rightContext | 目标字符串中 lastMatch 之后的文本,可以简写成 $' 。 |