JavaScript 正则语法速查,按类别分组并可搜索
.除换行符外的任意字符
a.c → abc
\d数字 0–9
\d+ → 2026
\D非数字字符
\w字母、数字或下划线
\w+
\W非单词字符
\s空白字符(空格、制表、换行)
\S非空白字符
[abc]方括号中的任意一个字符
[aeiou]
[^abc]不在方括号中的任意字符
[a-z]字符范围
[A-Z0-9]
\p{L}某个 Unicode 类别(需 u 标志)
\p{Script=Han}
\P{L}不属于该 Unicode 类别
\P{L}+
*前一项出现 0 次或多次
+前一项出现 1 次或多次
?前一项出现 0 次或 1 次
{n}恰好出现 n 次
\d{4}
{n,}至少出现 n 次
{n,m}出现 n 到 m 次
*?任意量词后加 ? 即懒惰匹配,尽可能少地匹配
<.+?>
^字符串开头(m 标志下为行首)
$字符串结尾(m 标志下为行尾)
\b单词边界
\bcat\b
\B非单词边界
(abc)捕获分组,可用 $1 或 \1 引用
(\d{4})-(\d{2})
(?:abc)非捕获分组,只做分组不保存
(?<name>abc)具名捕获分组
(?<year>\d{4})
a|b或,匹配其中任意一个
cat|dog
\1 \2反向引用前面的捕获分组
(\w)\1
\k<name>引用具名分组
(?=abc)正向肯定断言:后面必须跟着 abc
\d+(?= 元)
(?!abc)正向否定断言:后面不能是 abc
(?<=abc)反向肯定断言:前面必须是 abc
(?<=\$)\d+
(?<!abc)反向否定断言:前面不能是 abc
\n换行符
\t制表符
\r回车符
\f换页符
\v垂直制表符
\0空字符(NUL)
\cX控制字符,X 为对应字母
\\反斜杠本身
\.转义元字符,匹配字面点号
\u4E2D按码点匹配一个字符
\u{1F600}按码点匹配,超过 U+FFFF 需 u 标志
\u{1F600}
\x41按十六进制匹配一个字符
g全局匹配,找出所有结果
i忽略大小写
m多行模式,^ 和 $ 匹配行首行尾
s让 . 也能匹配换行符
u按 Unicode 码点处理
vUnicode 集合模式,支持集合运算(与 u 互斥)
[\p{L}--[aeiou]]
y粘性匹配,只从上次结束处继续
d记录每个匹配的位置信息
语法按 JavaScript(ECMAScript)正则整理。断言、\p{...} 与 v 标志需要较新的浏览器;点击右侧按钮可复制语法。