正则表达式速查表与可视化工具

快速掌握正则表达式符号,把一个模式拆成通俗易懂的部分,并用你自己的文本测试。全部在浏览器中运行。

/
/
粘贴一个正则表达式,即可看到逐段的说明。
标志
各段
在上方输入一个模式,即可看到它的各个部分。

可选。输入或粘贴文本,匹配结果会随输入实时显示。

速查表


. 换行以外的任意一个字符 示例: a.c
\d 一个数字 (0-9) 示例: \d+
\D 非数字的任意字符 示例: \D+
\w 一个单词字符 (a-z, A-Z, 0-9, _) 示例: \w+
\W 非单词字符的任意字符 示例: \W+
\s 一个空白字符 示例: \s+
\S 非空白的任意字符 示例: \S+
^ 文本开头 示例: ^hello
$ 文本结尾 示例: world$
\b 一个单词边界 示例: \bword\b
\B 不是单词边界的位置 示例: \Bword\B
[abc] 字符集合 示例: [abc]+
[^abc] 取反的字符集合 示例: [^abc]+
[a-z] 字符集合 示例: [a-z0-9]+
(abc) 捕获组 示例: (abc)
(?:abc) 非捕获组 示例: (?:abc)+
(?<n>) 具名分组 示例: (?<year>\d{4})
\1 反向引用 示例: (\w)\1
a|b 择一 示例: cat|dog
? 可选(0 或 1) 示例: colou?r
* 重复 0 次或以上 示例: a*
+ 重复 1 次或以上 示例: a+
{m,n} 重复指定的次数 示例: a{2,4}
+? 同样的含义,但尽可能短 示例: <.+?>
(?=) 仅当后面跟着 示例: foo(?=bar)
(?!) 仅当后面不跟着 示例: foo(?!bar)
(?<=) 仅当前面是 示例: (?<=\$)\d+
(?<!) 仅当前面不是 示例: (?<!\$)\d+
\. 把下一个字符当作字面字符 示例: 3\.14
\n 一个换行 示例: line\n
\t 一个制表符 示例: \tindented

常用校验模式


用途模式说明匹配示例
电子邮件地址^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$校验电子邮件地址的常见形式。user@example.com
电话号码(美国)^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$匹配十位号码,带或不带连字符、空格、括号均可。123-456-7890
邮政编码(美国)^\d{5}(-\d{4})?$匹配五位和九位的邮政编码。90210-1234
日期 (YYYY-MM-DD)^\d{4}-\d{2}-\d{2}$匹配简单的纯数字日期格式。2026-09-16
IP 地址 (IPv4)^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$匹配 IPv4 地址的形式,但不检查每一段是否在 0 到 255 之间。192.168.1.1

这些模式检查的是值的形式,而不是它是否真实存在。一个地址可以完全符合邮件模式却依然发不出去,所以用它们尽早发现拼写错误,绝不要当作唯一的校验。

这个工具提供什么


一份精简的正则表达式符号参考,一种把模式翻译成日常句子的拆解,以及一个能显示模式在你自己文本中匹配到什么的测试器。

什么时候用


写模式时用,读别人写的模式时用,给同事讲正则基础时也用。把模式一段一段念出来,往往就是让人豁然开朗的那一步。

局限


拆解遵循 JavaScript 的正则表达式,因为那正是浏览器所执行的。其他方言有所不同:PCRE、Python、Java 和 .NET 各自添加了自己的语法,而 grep、sed 等 POSIX 工具使用的是更老、更小的语法。测试器在单独的线程中运行你的模式,几秒后就会停止,因此无限回溯的模式无法让页面卡死。

如何使用速查表


搜索一个符号,或粘贴一个模式,逐段阅读。

  1. 浏览或搜索符号列表。
  2. 粘贴一个模式,看它被拆成哪些段。
  3. 输入示例文本,看清真正匹配到什么,再调整模式。

常见问题


这个工具会上传我的模式吗?
不会。拆解和匹配都在你的浏览器中进行,模式和文本都不会发送到任何地方。

它遵循哪种正则方言?
JavaScript 的方言,因为干活的正是这个引擎。这里的绝大部分内容——字符类、分组、量词、锚点——在各个方言中都是一样的。

我可以在这里测试我的模式吗?
可以。在测试框中输入文本,匹配会被高亮显示,并列出每处匹配捕获到的分组。

我的模式为什么被中止了?
有些模式遇到几乎能匹配的文本时会花费指数级的时间,常见原因是量词套量词,例如 (a+)+b。测试器几秒后就放弃,而不是让页面卡死;这次中断本身就是一个有用的警告:同样的模式会把服务器拖垮。

Wikipedia — Regular expression
Wikipedia — PCRE
Wikipedia — Finite-state machine
Wikipedia — ReDoS
Wikipedia — Backtracking