跳到主内容
UniKit

正则测试器

在线测试正则表达式:高亮匹配结果、列出捕获组(含命名组)、预览 $1 替换效果、开关 g/i/m/s/u/y/d 标志、统计匹配数量与耗时,非法正则给出位置提示,并内置邮箱/URL/手机号/IP/日期预设。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

常用预设

标志

未勾选 g 时只匹配第一处;替换预览与匹配使用同一组标志。

匹配高亮

匹配数量: 2

联系 alice@example.com 或 bob@test.cn,电话 13800138000,时间 2026-10-10。

匹配详情

#位置匹配内容
13–20alice@example.com
223–34bob@test.cn

捕获组

组名称内容
1useralice
2domainexample.com

替换结果

联系 [alice] 或 [bob],电话 13800138000,时间 2026-10-10。

这个工具能做什么

  • 写正则时边写边看效果:命中的片段会高亮显示,匹配数量、位置和耗时同时给出,不用来回切到控制台。
  • 需要提取分组时看捕获组面板,命名组也会列出来,方便确认 $1、$<name> 到底对应哪一段文本。
  • 做批量替换前先预览:填入替换模板就能看到结果文本,确认 $1 的顺序和转义都没写错再上生产。
  • 不确定 g、m、s、u 该开哪个时逐个勾选对比,粘日志、多行文本或含 Emoji 的内容时差别很明显。

示例

输入

正则 (?<user>[\w.+-]+)@(?<domain>[\w-]+\.[\w.]+),标志 g,文本「联系 alice@example.com 或 support@example.com」,替换为 [$<user>]

输出

匹配 2 处:alice@example.com(user=alice,domain=example.com)、support@example.com(user=support,domain=example.com);替换结果「联系 [alice] 或 [support]」

未勾选 g 时只处理第一处匹配,替换预览与匹配使用同一组标志,所以这里的替换对两处都生效。

常见问题

为什么我的正则只匹配到第一处?

没勾选 g 标志。没有 g 时 exec 只返回第一个匹配,替换也只替换第一处。粘日志或做批量替换时记得打开全局匹配,另外注意 y 标志是粘性匹配,含义和 g 完全不同。

正则写错了会怎样?

会给出错误类型和猜测的字符位置,例如漏了右括号会指向对应左括号的位置。位置是按括号配对、字符类和量词语法推算出来的提示,用来快速定位,不是引擎的权威报错。

文本太长或匹配太多会被限制吗?

会。测试文本上限 20 万字符,匹配数量上限 2000 条,超出会提示并停止,避免病态正则把标签页拖死。这是保护措施,不是正则本身的问题。

替换里的 $1 和 $<name> 有什么区别?

$1 是按序号引用第 1 个捕获组,$<name> 是按名字引用命名组,需要正则里写了 (?<name>…)。序号在增删分组后容易错位,所以长期维护的替换模板建议用命名组。

测试内容会上传吗?

不会。匹配、替换和高亮都在浏览器里用 JavaScript 正则完成,页面不发任何请求,粘进来的日志也不会离开本机。

关键词:regexregexp正则正则表达式正则测试regex testercapture group捕获组replace

同类工具