Handytool
开发者指南5 分钟阅读更新于 2026年3月16日

免费正则表达式游乐场

实时调试JavaScript正则表达式

Handytool的正则表达式测试器在您输入时立即针对您的测试字符串运行模式,显示每个匹配项、捕获组和替换预览,无需离开浏览器。

要点

  • 01测试器使用您浏览器的原生JavaScript RegExp引擎,因此结果完全符合Node.js或现代浏览器在生产中会产生的结果。
  • 02所有六个JavaScript标志(g、i、m、s、y、u)可单独使用。
  • 03替换模板支持$1、$2、$&和$$以实现强大的替换预览。
  • 04没有内容发送到服务器——模式和测试字符串完全保留在您的浏览器中。

为什么专用正则表达式测试器优于您的IDE

正则表达式功能强大,但出了名的难以一眼理解。即使是经验丰富的开发者也会遇到意外:一个吞掉换行符的点、一个消耗过多的贪心量词,或一个偏差一个的捕获组。专用测试器剥离周围代码,让您只需同时迭代模式和输入字符串。

Handytool的正则表达式测试器使用浏览器的原生ECMAScript RegExp引擎评估模式,这意味着没有转换层,也没有语言不匹配。如果测试器说它匹配,您的JavaScript代码也会。切换标志,粘贴新的示例字符串,结果立即更新——不需要运行按钮。

如何测试正则表达式模式

整个工作流程花费不到一分钟。

  1. 01

    粘贴或输入您的模式

    在模式字段中输入您的正则表达式。省略周围的斜杠——标志单独设置。

  2. 02

    设置您的标志

    单独切换g、i、m、s、y和u。全局标志对于多匹配使用情况几乎总是必需的。

  3. 03

    粘贴您的测试字符串

    添加您要匹配的文本。每次按键都重新运行模式并突出显示输入中的匹配项。

  4. 04

    检查捕获组

    滚动匹配项列表以查看每个匹配项的位置和每个编号捕获组的值。

  5. 05

    预览替换

    输入使用$1、$2或$&的替换模板,查看替换后的输出实时——非常适合在您编写String.replace()调用之前验证它。

快速正则表达式调试检查表

在假设错误之前,检查以下内容:

  • 01如果您期望多个匹配项,全局标志是否已启用?
  • 02点应该匹配换行符吗?如果是,启用s标志。
  • 03您在替换中使用编号组($1、$2)还是命名组(\k<name>)?
  • 04模式使用Unicode转义(\p{…})吗?需要u标志。
  • 05粘性标志(y)是否需要为每个匹配项刷新lastIndex?

设计隐私保护

正则表达式测试器在您输入时不发出零网络请求。您的模式和测试字符串由浏览器的JavaScript引擎完全处理——它们永不接触服务器。这使得在调试时安全粘贴专有日志行、内部API有效负载或敏感字符串成为可能。

由于没有后端,也没有速率限制、无需账户且无粘贴大小限制,除了您的浏览器标签页可以处理的内容外。大多数日常模式和字符串在不到一毫秒内评估。

正则表达式测试器常见问题

此测试器使用哪个正则表达式风格?

JavaScript(ECMAScript)。模式由浏览器的原生RegExp引擎评估,完全符合Node.js和现代浏览器行为。支持后向断言、命名组和Unicode属性转义(\p{…}与u标志)。

我的模式或测试字符串会离开页面吗?

不会。所有内容在您的浏览器中本地运行——当您输入模式、更改标志或预览替换时,没有网络请求。

我如何在替换字段中使用捕获组?

对编号组使用$1、$2……,$&表示整个匹配项,$$表示插入字面美元符号。当您更改模式或模板时,预览实时更新。

这对Python或PCRE模式有效吗?

引擎是JavaScript,所以大多数基本模式表现相同,但不支持Python风格的(?P<name>…)命名组和所有格量词。使用JS等价物——(?<name>…)用于命名组。

我的正则表达式为什么不匹配跨越换行符?

启用s(dot-all)标志,或将.替换为[\s\S]。没有它,点匹配除换行符外的任何字符。

相关工具

继续使用 开发者 工具

开发者 工具