正则表达式测试
实时匹配、按标志运行、逐条列出捕获组
表达式不带两侧的 /;选择标志并输入文本即可匹配。结果中的位置从 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 标志,适合调试提取规则和学习零宽匹配。
适用场景
- 写日志切分脚本前,验证正则能不能覆盖到所有行。
- 排查一个「几乎能匹配」的表达式为什么在某几条上失败。
- 把命名捕获组的值挑出来,快速看结构。
操作步骤
- 在“正则表达式”中输入表达式,不带首尾的 /。
- 在“标志”中输入 g(全局)、i(忽略大小写)、m(多行)、s(点号匹配换行)、u(Unicode)或 y(粘连),每种标志最多一次。
- 在“文本”中粘贴目标文本;修改任一项会自动重新匹配。
注意事项
本工具用的是 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个;核对高亮位置时应使用同一索引单位,不能直接用字节偏移替代。
相关工具