正则速查表

正则语法快速参考。每个标记都附有含义和示例。

锚点

标记含义示例
^字符串开头(或在 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 或 bcat|dog
(?=abc)正向先行断言\d(?=px)
(?!abc)负向先行断言\d(?!px)
(?<=abc)正向后行断言(?<=\$)\d+
(?<!abc)负向后行断言(?<!\$)\d+
\1对分组 1 的反向引用(\w)\1

特殊字符与转义

标记含义示例
\.字面量圆点(对特殊字符转义)3\.14
\uXXXX通过码点指定的 Unicode 字符é

标志

标记含义示例
gg:全局 —— 查找所有匹配/\d+/g
ii:忽略大小写匹配/abc/i
mm:多行 —— ^ 和 $ 匹配行边界/^x/m
ss:点匹配所有 —— . 也匹配换行/a.b/s
uu:Unicode 模式/\u{1F600}/u
yy:粘性 —— 仅从 lastIndex 位置匹配/\d/y

自己试一试

前往测试器,直接用这些标记实战演练。

打开正则测试器