正则表达式测试器

在浏览器中对示例文本测试 JavaScript 正则表达式,检查捕获组与命名组,并本地预览替换输出。

所有正则测试均在您的浏览器中本地运行。当前的模式、标志、替换和示例文本存储在 URL 哈希中,便于复制粘贴和分享。
0 字符
不要包含包裹的斜杠
标志g

支持的标志:global、ignore case、multiline、dotAll、unicode 和 sticky。

可选:使用 $1 或 $<name> 组

快速示例

使用示例文本测试 JavaScript 正则表达式

当您需要在将正则表达式用于前端、Node.js 或 TypeScript 代码之前检查其匹配内容时,请使用此工具。

粘贴示例文本,输入不带斜杠的模式,选择标志,然后查看匹配、分组和替换输出。

每个结果的含义

  • 高亮匹配项 显示模式在示例文本中匹配的位置。
  • 匹配与分组 列出匹配范围、编号分组和命名分组。
  • 替换输出 预览 JavaScript String.replace() 的替换结果。
  • 复制匹配 JSON 复制结构化的匹配数据。 复制替换内容 复制替换预览生成的文本。
  • 复制 URL 将当前的模式、标志、替换和示例文本复制到 URL 哈希中。

支持的标志

Flag Name Effect
g Global 查找所有匹配而不仅仅是第一个。
i 忽略大小写 匹配字母时不区分大小写。
m Multiline Make ^ and $ 使 ^ 和 $ 按行工作。
s DotAll Let . 使 . 匹配换行符。
u Unicode 使用支持 Unicode 的匹配规则。
y Sticky 仅从当前 JavaScript 的 lastIndex 开始匹配。 lastIndex.

Limits

  • 这是一个 JavaScript RegExp 测试器,而不是 PCRE、Python、Java、SQL 或 .NET 的正则表达式测试器。
  • 示例文本和收集到的匹配有上限,以保持页面响应。
  • 一些明显的嵌套量词模式会被屏蔽,但这并不是完整的 ReDoS 分析器。
  • JavaScript 不为单次正则执行提供同步超时。
  • URL 哈希可能包含粘贴的示例文本。在共享复制的 URL 之前,请移除私有日志或机密信息。

常见问题

此页面使用哪种正则语法?

它使用 JavaScript RegExp 语法。用于浏览器、Node.js 和 TypeScript 的正则工作。为 PCRE、Python、Java、SQL 或 .NET 编写的模式可能行为不同。

为什么我只看到一个匹配?

添加 g 用于收集所有匹配的标志。没有 g,JavaScript 通常只返回第一个匹配。

我可以在替换中使用命名分组吗?

是的。命名分组例如 (?<level>ERROR|WARN) 会出现在匹配详情中,并可以在替换文本中作为 $<level>.

“复制匹配 JSON”和“复制替换”之间有什么区别?

“复制匹配 JSON”会将匹配范围和分组以 JSON 形式复制。“复制替换”会复制替换预览生成的文本。

这个工具能检测到不安全的回溯模式吗?

只能部分检测。该工具会屏蔽一些明显的嵌套量词模式并限制输入大小,但它并不是完整的 ReDoS 分析器。