正则测试
实时匹配与捕获组
测试 JavaScript 正则表达式,支持实时匹配高亮、捕获组以及 g、i、m 标志控制。
此转换仅在您的浏览器中运行,不会上传任何内容。
标志
- 匹配—
- 标志g
- 测试字符串0
测试字符串
输出
输出...
这个工具是什么?
此工具在浏览器中编译 JavaScript 正则,对测试字符串显示实时匹配高亮、匹配数与捕获组。无需 /…/ 定界符,可切换 g、i、m。
行为遵循浏览器 ECMAScript RegExp,与 PCRE、Python、Java、.NET、RE2 可能不同。适合在写入业务代码前验证校验、日志提取与文件名规则。
常见用途
- 调试表单校验为何通过或拒绝某字符串
- 从短日志中用捕获组提取 ID 或 key=value
- 在同一文本上对比贪婪
.*与惰性.*?,以及多行^/$
如何使用
- 输入不含
/…/的模式(如\d+或(\w+)=(\S+))。 - 切换
g(全部匹配)、i(忽略大小写)、m(按行^/$)。 - 粘贴测试字符串;匹配会高亮,有捕获组时列在下方。
- Sample 载入多行 key=value 示例;Copy 复制匹配/捕获摘要;Clear 清空。
示例
| 模式 / 标志 | 测试字符串 | 结果 |
|---|---|---|
\d+ · g | Order 123 and 456 | 两个匹配:123、456 |
user-(\d+) | user-42 | 匹配 user-42;捕获 42 |
^id=.*$ · m | user=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 式回溯。调试时请用短样例。