正则速查表
正则语法快速参考。每个标记都附有含义和示例。
锚点
| 标记 | 含义 | 示例 |
|---|---|---|
^ | 字符串开头(或在 m 标志下为行首) | ^Hello |
$ | 字符串结尾(或在 m 标志下为行尾) | world$ |
\b | 单词边界 | \bcat\b |
\B | 非单词边界 | \Bcat |
字符类
| 标记 | 含义 | 示例 |
|---|---|---|
. | 除换行外的任意字符 | a.c |
\d | 任意数字,0–9 | \d\d |
\D | 任意非数字字符 | \D+ |
\w | 任意单词字符(a–z, A–Z, 0–9, _) | \w+ |
\W | 任意非单词字符 | \W |
\s | 任意空白字符 | a\sb |
\S | 任意非空白字符 | \S+ |
[abc] | 集合中的任意一个字符 | [aeiou] |
[^abc] | 不在集合中的任意字符 | [^0-9] |
[a-z] | 从 a 到 z 范围内的任意字符 | [A-Z] |
量词
| 标记 | 含义 | 示例 |
|---|---|---|
* | 前一项出现零次或多次 | ab* |
+ | 前一项出现一次或多次 | ab+ |
? | 前一项出现零次或一次(可选) | ab? |
{n} | 前一项恰好出现 n 次 | \d{4} |
{n,} | 前一项出现至少 n 次 | \d{2,} |
{n,m} | 前一项出现 n 到 m 次之间 | \d{2,4} |
*? | 懒惰匹配 —— 尽量少匹配 | <.*?> |
分组与环视
| 标记 | 含义 | 示例 |
|---|---|---|
(abc) | 捕获分组 | (\d+) |
(?:abc) | 非捕获分组 | (?:ab)+ |
(?<name>) | 命名捕获分组 | (?<year>\d{4}) |
a|b | 分支选择 —— a 或 b | cat|dog |
(?=abc) | 正向先行断言 | \d(?=px) |
(?!abc) | 负向先行断言 | \d(?!px) |
(?<=abc) | 正向后行断言 | (?<=\$)\d+ |
(?<!abc) | 负向后行断言 | (?<!\$)\d+ |
\1 | 对分组 1 的反向引用 | (\w)\1 |
特殊字符与转义
| 标记 | 含义 | 示例 |
|---|---|---|
\. | 字面量圆点(对特殊字符转义) | 3\.14 |
\uXXXX | 通过码点指定的 Unicode 字符 | é |
标志
| 标记 | 含义 | 示例 |
|---|---|---|
g | g:全局 —— 查找所有匹配 | /\d+/g |
i | i:忽略大小写匹配 | /abc/i |
m | m:多行 —— ^ 和 $ 匹配行边界 | /^x/m |
s | s:点匹配所有 —— . 也匹配换行 | /a.b/s |
u | u:Unicode 模式 | /\u{1F600}/u |
y | y:粘性 —— 仅从 lastIndex 位置匹配 | /\d/y |