操作指南 · 开发者
如何在 Chrome 里用离线正则测试器测试正则表达式
简短回答
打开 DevKit 的正则标签页,输入模式、切换标志、贴上样本文本——匹配、捕获组和命名组实时更新。失控的模式会被 worker 超时干掉,不会卡死任何东西,你的测试文本也绝不离开浏览器。
- 1
点击 Chrome 里的 DevKit 图标,打开正则标签页。
- 2
输入模式,按需切换标志(g、i、m、s、u、y)。
- 3
粘贴要测试的文本——真实日志行也没问题,反正不上传。
- 4
阅读实时匹配列表,包括按序号的和命名的捕获组。
- 5
如果模式发生灾难性回溯,worker 会超时并告诉你——什么都不会卡死。
你拿来测正则的样本文本很少是编出来的——它是一条生产日志、一份邮件导出、一段客户数据。把它贴进在线正则测试器,等于把你绝不会提交到公共仓库的文本原样上传。DevKit 是一个跑在 Chrome 弹窗里的正则测试器:模式、标志和测试文本全部留在你的机器上。

输入模式,选好标志
打开正则标签页,输入模式。六个 JavaScript 标志一点即切:g(所有匹配)、i(忽略大小写)、m(^/$ 匹配行边界)、s(. 匹配换行)、u(Unicode)和 y(粘性)。调试时你最常伸手的是 i 和 m——“我的正则怎么不匹配”里有惊人比例就是这两个之一没开。
粘贴样本文本,实时读匹配
贴上你真正需要匹配的文本——真实的日志片段胜过消毒版,而在这里用它是安全的。结果随输入更新:每个匹配都列出位置、按序号的捕获组和任何命名组((?<name>…)),第 2 组抓没抓到你想要的,一眼便知。输出上限 1,000 个匹配,超出会明确标注截断,免得贪婪模式撞上超大输入把弹窗淹掉。
失控的模式冻结不了任何东西
有些模式不是失败——是挂起。灾难性回溯(经典案例是 (a+)+ 这类嵌套量词撞上近似匹配的字符串)能把一个 CPU 核心钉住几分钟。DevKit 把匹配放进带超时的 web worker 里跑:爆炸的模式会被终止并报告为超时,弹窗保持响应。你会在上线之前就发现自己的模式有多危险——同一类 bug 真的放倒过线上服务。
留意正则方言
诚实的提醒:这是 JavaScript(V8)正则——和 Chrome、Node 同一引擎,在这里匹配的,在你的前端和 Node 后端同样匹配。如果模式要去 Python、Go 或 PCRE,大部分语法能带过去,但不是全部;依赖边缘特性之前,请在目标引擎里复测。
私密是构造出来的
这个扩展没有任何网站的访问权限,也不发网络请求;唯一权限是 storage,用来记住你上次打开的工具。这正是敢拿真实数据来测的底气。它免费,同一个弹窗里还有 JWT 解码器、Base64 和 URL 转换器、时间戳转换器和 UUID/ULID 生成器。