正则测试器
标志
键入一个正则表达式,粘贴要测试的文本,测试器就会运行该模式并列出它找到的每个匹配。每个结果都显示匹配从哪里开始,以及每个捕获组的内容,让你清楚看到模式究竟捕获了什么。切换不区分大小写、多行和 dotall 标志,即可改变模式的行为。
如何测试正则
-
1
输入你的模式
键入不带定界符的表达式;测试器会为你用 `/ /` 包裹。无效的模式会显示清晰的错误信息,而不是无声失败。
-
2
选择标志
开启 `i`(不区分大小写)、`m`(多行)或 `s`(dotall),以按你需要的方式匹配。
-
3
粘贴测试文本
添加你想搜索的文本。测试器会遍历全部内容,找出每一个匹配,而不仅仅是第一个。
-
4
检查匹配
每个匹配都会显示它在文本中的位置(offset)、完整匹配,以及每个带编号的捕获组。
测试器会向你展示什么
在脑中或用一条快速的 grep 运行模式,只能告诉你是否匹配。测试器还会展示:
- 每个匹配及其位置。 它总是搜索整段文本,并用匹配开始处的字符偏移量报告每个匹配。
- 哪个组捕获了什么。 每个匹配都会拆分为完整匹配和带编号的捕获组,让你确认某个
(...)抓到的正是你期望的部分。 - 标志改变了什么。 开启
i、m或s并重新测试,看看不区分大小写、多行或 dotall 如何改变结果。
标志一览
| 标志 | 名称 | 改变什么 |
|---|---|---|
i |
不区分大小写 | A 也匹配 a,反之亦然 |
m |
多行 | ^ 和 $ 在每一行的开头和结尾匹配,而不只是整段文本 |
s |
Dotall | . 也匹配换行符 |
匹配始终是全局的:测试器返回文本中的每个匹配,因此无需另设“global”标志。模式在带 Unicode 支持的 PCRE 引擎上运行,所以像 \w 和 \d 这样的字符类在国际化文本上表现一致。
这能帮你发现的常见正则问题
| 症状 | 常见原因 |
|---|---|
| 一个覆盖一切的巨大匹配 | .* 是贪婪的;改用 .*? 或像 [^"]* 这样的否定字符类 |
^ 或 $ 只匹配一次 |
多行文本上缺少 m 标志 |
. 在换行处停止 |
缺少 s 标志 |
| 捕获组顺序出乎意料 | 嵌套的 ( 会改变组的编号;从左到右数一数 |
| 模式运行缓慢 | 在重叠的分支上嵌套 * 或 + 会导致大量回溯 |
让模式更快更稳的技巧
- 当匹配从开头开始时,用
^加锚点,让引擎不必扫描整个字符串。 - 优先使用字符类(
[abc])而非分支(a|b|c);在每个主流引擎中字符类都更快。 - 当你知道终止符时,用像
[^"]*这样的否定字符类替换贪婪的.*,就不会有回溯。
常见问题
它用 PCRE 运行你的模式,这是 PHP 内置的引擎,并开启了 Unicode 模式。PCRE 特有的语法,如 \d、\b 和环视,都能按预期工作。如果你打算在 JavaScript、Python 或其他语言中部署该模式,请在上线前检查一些细小的语法差异。
每个匹配。测试器总是搜索整段文本,因此无需另设“global”标志。每个匹配都会连同它在文本中的位置一起列出。
能。每个匹配都会拆分为完整匹配和每个带编号的捕获组,让你确认每个 (...) 捕获了文本的哪一部分。
i 让匹配不区分大小写,m 让 ^ 和 $ 在每个行边界匹配,s 让 . 也能匹配换行符。开启或关闭它们并重新测试,以比较结果。
测试器会显示一条清晰的错误信息来描述问题,例如未闭合的方括号或未结束的分组,而不是无声地返回零匹配。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
EditorConfig 生成器
按你的缩进、换行符和字符集规则生成 .editorconfig,再为仓库里的每种语言加上正确的区块:Python、Go、YAML、Makefile 等等。
证书解码器
粘贴一张 X.509 PEM 证书,并查看解码后的字段:主体、颁发者、序列号、签名算法、有效期及主体备用名称(SAN)。
此工具还提供其他语言版本
- Probador de Regex [ES]
- 正規表現テスター [JA]
- Regex-Tester [DE]
- Regex-testare [SV]
- Testeur de Regex [FR]
- 정규식 테스터 [KO]
- Testador de Regex [PT]
- أداة اختبار Regex [AR]
- Regex-tester [NL]
- Trình kiểm tra Regex [VI]
- Penguji Regex [ID]
- Tester Regex [PL]
- ตัวทดสอบ Regex [TH]
- Tester di Regex [IT]
- Тестер Regex [RU]
- Regex Test Aracı [TR]
- Regex Tester [EN]