Menu
CoddyTech

正则表达式速查表

最后更新

字符类

从一组字符中匹配单个字符。

符号匹配
.除换行符以外的任意字符
\d任意数字(0 到 9)
\D任意非数字字符
\w单词字符(字母、数字、下划线)
\W任意非单词字符
\s任意空白字符(空格、制表符、换行符)
[abc]a、b、c 中的任意一个
[a-z]该范围内的任意小写字母
[^abc]除 a、b、c 以外的任意字符

量词

指定前一个符号重复的次数。

符号匹配
*零次或多次
+一次或多次
?零次或一次(可选)
{3}正好 3 次
{2,4}2 到 4 次
{2,}2 次或更多
*?非贪婪:尽可能少
+?非贪婪:至少一次,尽量少

锚点与边界

匹配的是位置,而不是字符。

符号匹配
^字符串(或行)的开头
$字符串(或行)的结尾
\b单词边界
\B非单词边界
^abc$恰好等于 abc 的字符串
\bword\b作为完整单词的 word

分组与捕获

把多个符号组合起来,并捕获它们匹配到的内容。

符号匹配
(abc)捕获组,保存为第 1 组
(?:abc)非捕获组
(?<year>\d{4})名为 year 的命名捕获组
(ab)+重复整个分组
\1对第 1 组的反向引用
\k<year>对命名分组的反向引用

选择

匹配这个模式或那个模式。

符号匹配
a|ba 或 b
cat|dog单词 cat 或 dog
(jpg|png|gif)几个选项中的任意一个,并捕获
gr(a|e)ygray 或 grey
^(yes|no)$恰好是 yes 或恰好是 no

环视

断言前面或后面是什么内容,但不消耗字符。

符号匹配
(?=abc)正向先行断言:后面紧跟 abc
(?!abc)负向先行断言:后面不是 abc
(?<=abc)正向后行断言:前面是 abc
(?<!abc)负向后行断言:前面不是 abc
\d+(?= dollars)只匹配后面跟着 dollars 的数字
(?<=\$)\d+只匹配前面是 $ 的数字

修饰符

改变整个模式的匹配方式。

修饰符作用
g全局:找出所有匹配,而不只是第一个
i忽略大小写
m多行:^ 和 $ 匹配每一行的开头和结尾
sdotall:. 也能匹配换行符
uUnicode 模式
x扩展模式:忽略模式中的空白

常用模式

日常校验中拿来就能改的现成模式。

模式匹配
^\d+$整数(只有数字)
^[\w.+-]+@[\w-]+\.[\w.-]+$基本的邮箱地址
https?:\/\/[^\s]+http 或 https 网址
^\d{4}-\d{2}-\d{2}$形如 2026-05-27 的日期
^\d{3}-\d{3}-\d{4}$美国电话号码
^#?[0-9a-fA-F]{6}$6 位十六进制颜色值
\s+一个或多个空白字符

常用的正则表达式符号,全都在这一页。这份正则表达式速查表是编写正则的快速参考:字符类、量词、锚点、分组、选择、环视和修饰符。

这里的语法遵循大多数语言通用的 PCRE / JavaScript 风格。你可以直接复制某个模式,也可以在正则测试工具里实时试一试,准确看到它匹配了什么,旁边一键就能打开 JS 在线编辑器。

正则表达式速查表常见问题

这份正则表达式速查表免费吗?

免费。这份正则表达式速查表完全免费,无需注册。收藏起来,需要查某个符号、量词或修饰符时随时回来看。

贪婪量词和非贪婪量词有什么区别?
* 和 + 这样的贪婪量词会尽可能多地匹配,如果模式的其余部分需要,再把字符让出来。非贪婪量词在后面加一个 ?(例如 *? 或 +?),会尽可能少地匹配,只在不得不时才扩展。比如对 <a><b> 来说,模式 <.+> 会贪婪地匹配整个字符串,而 <.+?> 只匹配 <a>。
正则表达式中的捕获组是什么?
捕获组是用圆括号包起来的一部分模式,比如 (\d{4}),它匹配到的文本会被保存并编号,方便你复用或提取。之后可以用 \1 这样的反向引用来引用它,也可以写成 (?<year>\d{4}) 给它起个名字,更清楚。如果只想分组而不捕获,就用非捕获组 (?:...)。
可以在线练习正则表达式吗?
可以。打开正则测试工具,输入一个模式,就能在浏览器里实时看到它在你自己的文本中匹配了什么。你也可以把任意模式放进 JS 在线编辑器,在代码里使用。想要系统学习的话,Coddy 的免费交互式课程会一步步讲解这些基础知识。
这份速查表适合初学者吗?

适合。内容从字符类和量词(基础)一直讲到环视和现成的模式,你可以马上开始匹配简单的文本,再逐步掌握高级表达式。

Coddy 编程语言插图

在 Coddy 学习 Regex

开始