正则测试

实时匹配与捕获组

测试 JavaScript 正则表达式,支持实时匹配高亮、捕获组以及 g、i、m 标志控制。

此转换仅在您的浏览器中运行,不会上传任何内容。

标志
  • 匹配
  • 标志g
  • 测试字符串0

测试字符串

输出

输出...

这个工具是什么?

此工具在浏览器中编译 JavaScript 正则,对测试字符串显示实时匹配高亮、匹配数与捕获组。无需 /…/ 定界符,可切换 gim

行为遵循浏览器 ECMAScript RegExp,与 PCRE、Python、Java、.NET、RE2 可能不同。适合在写入业务代码前验证校验、日志提取与文件名规则。

常见用途

  • 调试表单校验为何通过或拒绝某字符串
  • 从短日志中用捕获组提取 ID 或 key=value
  • 在同一文本上对比贪婪 .* 与惰性 .*?,以及多行 ^/$

如何使用

  1. 输入不含 /…/ 的模式(如 \d+(\w+)=(\S+))。
  2. 切换 g(全部匹配)、i(忽略大小写)、m(按行 ^/$)。
  3. 粘贴测试字符串;匹配会高亮,有捕获组时列在下方。
  4. Sample 载入多行 key=value 示例;Copy 复制匹配/捕获摘要;Clear 清空。

示例

模式 / 标志测试字符串结果
\d+ · gOrder 123 and 456两个匹配:123456
user-(\d+)user-42匹配 user-42;捕获 42
^id=.*$ · muser=a / id=42(两行)仅匹配 id=42 行(m 启用行首尾)
<(.+)> vs <(.+?)> · g<a>x</a><b>y</b>贪婪跨度更宽;惰性更短(对比边缘)
[(非法)任意Invalid regex 错误

实践中的常见误区

  • 引擎差异: 面向 Python/re 或 PCRE 的模式在 JS 中可能失败或表现不同。
  • 默认贪婪: .* 会越过你不想跨的边界——改用惰性量词或更紧的字符类。
  • ReDoS / 长输入: 嵌套量词加大段粘贴可能卡住标签页。调试时请用短样例。

参考资料

最后审阅: 2026-07-27

常见问题

使用哪种正则引擎?
浏览器的 JavaScript RegExp。lookbehind、Unicode 属性与回溯遵循 ECMAScript,与 PCRE、Python、Java、.NET、RE2 可能不同。
g、i、m 标志有什么作用?
g(全局)找全部匹配;关闭时只显示第一个。i 忽略大小写。m 让 ^/$ 匹配行首/行尾。
为什么贪婪模式吃掉太多内容?
.*、.+ 默认最长匹配。需要最短匹配时用 .*?、.+?(惰性),或收紧字符类以免越过边界。
病态模式会卡住标签页吗?
会。长文本上的嵌套量词可能引发 ReDoS 式回溯。调试时请用短样例。