正则表达式测试

正则表达式测试

实时匹配、按标志运行、逐条列出捕获组

浏览器本地计算

表达式不带两侧的 /;选择标志并输入文本即可匹配。结果中的位置从 0 开始,计算超时会停止。

 
–

示例

输入

正则表达式:(cat|dog)
标志:g
文本:cat and dog

示例结果

#0  "cat"
  $1 = "cat"

#8  "dog"
  $1 = "dog"

位置从 0 开始。表达式输入框不需要两侧的 / 分隔符。

技术细节与边界

位置以 JavaScript UTF-16 码元为单位。g 查找全部匹配,i 忽略大小写,m 改变行首尾锚点,s 让点号匹配换行,u 启用 Unicode 模式。匹配在独立 Worker 中运行并设超时,以减少复杂回溯对页面的阻塞;最多展示 5000 条结果。

关于此工具

使用浏览器的 JavaScript 正则引擎测试表达式,查看匹配位置、完整匹配和捕获组。支持 g、i、m、s、u、y 标志,适合调试提取规则和学习零宽匹配。

适用场景

  • 写日志切分脚本前,验证正则能不能覆盖到所有行。
  • 排查一个「几乎能匹配」的表达式为什么在某几条上失败。
  • 把命名捕获组的值挑出来,快速看结构。

操作步骤

  1. 在“正则表达式”中输入表达式,不带首尾的 /。
  2. 在“标志”中输入 g(全局)、i(忽略大小写)、m(多行)、s(点号匹配换行)、u(Unicode)或 y(粘连),每种标志最多一次。
  3. 在“文本”中粘贴目标文本;修改任一项会自动重新匹配。

注意事项

本工具用的是 JavaScript 的 RegExp 引擎,与 PCRE / Go regexp / Java 的正则在某些细节(回溯、原子组、条件表达式)上不完全一致;如果目标是其它语言,最终请以那种语言的实测为准。

常见问题

JavaScript 正则测试g和i标志怎么用?
正则标志g用于查找全部匹配,i用于忽略大小写。例如用a匹配Aa,开启gi可得到2处命中,只开启g则有1处;本工具遵循JavaScript语法,迁移到其他语言前需重新验证。
正则测试工具最多显示多少条匹配结果?
本工具最多展示5000条正则匹配结果,并通过独立Worker与超时控制限制阻塞。位置按UTF-16码元计数,部分字符占2个码元;大输入应分段测试,超时或截断都不代表完整扫描已完成。
正则匹配位置为什么和字符数量不同?
正则匹配位置使用UTF-16码元索引,因此可能与肉眼看到的字符数不同。基本平面字符通常占1个码元,补充平面字符占2个;核对高亮位置时应使用同一索引单位,不能直接用字节偏移替代。

相关工具

正则表达式测试 · 实时匹配、按标志运行、逐条列出捕获组
正则表达式测试 — 工具示意图 · dayeku.com