要点
- 01测试器使用您浏览器的原生JavaScript RegExp引擎,因此结果完全符合Node.js或现代浏览器在生产中会产生的结果。
- 02所有六个JavaScript标志(g、i、m、s、y、u)可单独使用。
- 03替换模板支持$1、$2、$&和$$以实现强大的替换预览。
- 04没有内容发送到服务器——模式和测试字符串完全保留在您的浏览器中。
为什么专用正则表达式测试器优于您的IDE
正则表达式功能强大,但出了名的难以一眼理解。即使是经验丰富的开发者也会遇到意外:一个吞掉换行符的点、一个消耗过多的贪心量词,或一个偏差一个的捕获组。专用测试器剥离周围代码,让您只需同时迭代模式和输入字符串。
Handytool的正则表达式测试器使用浏览器的原生ECMAScript RegExp引擎评估模式,这意味着没有转换层,也没有语言不匹配。如果测试器说它匹配,您的JavaScript代码也会。切换标志,粘贴新的示例字符串,结果立即更新——不需要运行按钮。
如何测试正则表达式模式
整个工作流程花费不到一分钟。
- 01
粘贴或输入您的模式
在模式字段中输入您的正则表达式。省略周围的斜杠——标志单独设置。
- 02
设置您的标志
单独切换g、i、m、s、y和u。全局标志对于多匹配使用情况几乎总是必需的。
- 03
粘贴您的测试字符串
添加您要匹配的文本。每次按键都重新运行模式并突出显示输入中的匹配项。
- 04
检查捕获组
滚动匹配项列表以查看每个匹配项的位置和每个编号捕获组的值。
- 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]。没有它,点匹配除换行符外的任何字符。