按 ⌘K 切换工具
TEXT
正则表达式测试器
实时测试和调试正则表达式模式。
regex-tester
2 match(es)
| # | Match | Index | Groups |
|---|---|---|---|
| 1 | [email protected] | 9 | — |
| 2 | [email protected] | 31 | — |
§01 关于此工具
概述
这个测试器随着你的输入,对测试字符串求值一条 JavaScript 正则。每个匹配都会列出
匹配到的文本、它在字符串中从 0 开始的位置,以及各个捕获组的值——这是在正则进入代码
之前调试它最快的办法。因为用的是浏览器原生的 RegExp,结果与你的 JavaScript
运行时的实际行为一致。
位置信息经常比匹配结果本身更有用:它能告诉你正则是不是从预期之外的地方开始匹配的, 也能暴露出贪婪量词吞掉了过多内容的情况。
使用方法
- 在 Pattern 输入框里写表达式,不需要写两侧的斜杠。
- 勾选标志复选框:
g、i、m、s、u、y。 - 把示例输入粘贴到 Test string。匹配数量和结果表(# / Match / Index / Groups)会实时更新。
示例
- 正则
\b\w+@\w+\.\w+\b对Contact: [email protected] and [email protected]→ 2 个匹配:[email protected](位置 9)、[email protected](位置 31)。 - 正则
(\d{4})-(\d{2})对2026-07-23→ 匹配2026-07,捕获组2026, 07。
说明
非法的正则会显示引擎给出的错误信息,而不是结果。匹配迭代上限为 10,000 次, 表格最多显示前 200 个匹配,因此病态的正则不会把页面卡死。
调试的顺序建议是先用最小的模式匹配上,再逐步加上边界、分组和量词, 每加一段就看一下匹配数量有没有按预期变化。
FAQ
我的正则和测试文本会被发送到服务器吗?
不会。匹配完全在浏览器内使用原生的 JavaScript RegExp 引擎运行,正则和测试字符串都不会离开你的设备。
这里用的是哪种正则方言?
浏览器自带的 JavaScript(ECMAScript)引擎,行为与你在 Node.js 或浏览器代码里得到的完全一致。其他方言的语法,例如只有 PCRE 支持的构造,可能表现不同。
为什么不加 g 标志也能看到全部匹配?
工具会枚举每一处出现,因此在列出匹配时内部会补上 g 标志。其余标志(i、m、s、u、y)严格按你设置的生效。