JavaScript 正则表达式速查表和参考指南
| 表达式 | 描述 |
|---|---|
| . 或 [^\n\r] | 除换行符或回车符外的任何字符 |
| [A-Za-z] | 字母 |
| [a-z] | 小写字母 |
| [A-Z] | 大写字母 |
| \d 或 [0-9] | 数字 |
| \D 或 [^0-9] | 非数字 |
| _ | 下划线 |
| \w 或 [A-Za-z0-9_] | 字母、数字或下划线 |
| \W 或 [^A-Za-z0-9_] | \w 的反向 |
| \S | \s 的反向 |
| 表达式 | 描述 |
|---|---|
| 空格 | |
| \t | 制表符 |
| \n | 换行符 |
| \r | 回车符 |
| \s | 空格、制表符、换行符或回车符 |
| 表达式 | 描述 |
|---|---|
| [xyz] | x、y 或 z 中的任意一个 |
| [^xyz] | 既不是 x、y 也不是 z |
| [1-3] | 1、2 或 3 中的任意一个 |
| [^1-3] | 既不是 1、2 也不是 3 |
• 字符集就像对方括号内的单个字符进行 OR 操作
• 在左方括号 [ 后使用 ^ 来"否定"字符集
• 在字符集中,. 表示字面上的句点
| 表达式 | 描述 |
|---|---|
| \. | 句点 |
| \^ | 插入符 |
| \$ | 美元符号 |
| \| | 管道符 |
| \\ | 反斜杠 |
| \/ | 正斜杠 |
| \( | 左括号 |
| \) | 右括号 |
| \[ | 左方括号 |
| \] | 右方括号 |
| \{ | 左花括号 |
| \} | 右花括号 |
| 表达式 | 描述 |
|---|---|
| \\ | 反斜杠 |
| \] | 右方括号 |
• ^ 只有在紧跟字符集的左方括号 [ 后才需要转义
• - 只有在两个字母或两个数字之间时才需要转义
| 表达式 | 描述 |
|---|---|
| {2} | 恰好 2 次 |
| {2,} | 至少 2 次 |
| {2,7} | 至少 2 次但不超过 7 次 |
| * | 0 次或多次 |
| + | 1 次或多次 |
| ? | 恰好 0 次或 1 次 |
• 量词放在要量化的表达式之后
| 表达式 | 描述 |
|---|---|
| ^ | 字符串开始 |
| $ | 字符串结束 |
| \b | 单词边界 |
单词边界匹配的工作原理:
• 在字符串开头,如果第一个字符是 \w
• 在字符串内相邻的两个字符之间,如果第一个字符是 \w,第二个字符是 \W
• 在字符串末尾,如果最后一个字符是 \w
| 表达式 | 描述 |
|---|---|
| foo|bar | 匹配 foo 或 bar |
| foo(?=bar) | 匹配 foo(如果后面是 bar) |
| foo(?!bar) | 匹配 foo(如果后面不是 bar) |
| (?<=bar)foo | 匹配 foo(如果前面是 bar) |
| (?<!bar)foo | 匹配 foo(如果前面不是 bar) |
| 表达式 | 描述 |
|---|---|
| (foo) | 捕获组;匹配并捕获 foo |
| (?:foo) | 非捕获组;匹配 foo 但不捕获 |
| (foo)bar\1 | \1 是对第 1 个捕获组的反向引用;匹配 foobarfoo |
• 捕获组仅在以下方法中相关:
• \N 是对第 N 个捕获组的反向引用。捕获组从 1 开始编号。