← 返回工具箱

正则测试

REGEX TESTER · 数据处理

实时匹配、逐组高亮与捕获组解读,零长匹配自动跳过,放心测试复杂表达式。

测试文本
替换(可选)
匹配结果
模板库 · 点击填入

>_ 使用指南 · GUIDE

上面写表达式,flags 用 g/i/m/s/u/y 六个可视化开关点亮组合(当前生效组合实时回显),下面贴测试文本,匹配结果实时高亮——改一个字符立即看到匹配变化。每个捕获组(括号分组)单独解读列出,调提取类正则(如从日志抠字段)特别省事;工具对零长度匹配做了自动跳过处理。

「替换」输入框支持 $1、$2、$&、` $ `、$' 与命名组 $<name> 全套引用语法,输入后替换预览实时呈现;未开启 g` 时会明确提示「仅替换第一处」,替换表达式引用了不存在的命名组则标黄提示、不中断匹配展示。模板库预置 20 条常用表达式(邮箱、URL、IPv4、手机号、日期、千分位、中文字符、HEX 颜色、UUID、日志级别等),点击一键填入表达式、flags 与测试文本。所有匹配在你的浏览器本地执行,测试文本不出设备。

>_ 常见问题 · FAQ

Q1 · 正则表达式总是匹配不到,怎么排查?

按这个顺序查:① 分组是否多写了转义(( 要写成 \();② 忘了 g 标志导致只匹配第一处——点开 flags 面板的 g 开关即可;③ 换行问题——. 默认不匹配换行符,跨行内容要用 [\s\S] 或加 s 开关;④ 目标文本里有不可见字符(全角空格、BOM)。本工具实时高亮,把表达式和文本贴进来逐段改,错在哪一段立刻能看出来。

Q2 · 替换里的 $1、$& 是什么意思?

$1~$9 引用第 n 个捕获组的内容,$& 引用整个匹配,` $ ` 是匹配前的文本、$' 是匹配后的文本,$<name> 引用命名捕获组。例如用 (\d{4})-(\d{2})-(\d{2}) 匹配日期、替换为 $1/$2/$3 就能把 2026-03-15 变成 2026/03/15`。在本工具的替换框里试一下,替换预览区立刻给出结果。

Q3 · 替换为什么只改了第一处?

flags 里没开 g(全局)。开了 g 所有匹配都被替换;不开 g 只替换第一处,工具会明确提示这一点。另外 y(粘性)标志会让匹配从 lastIndex 位置开始,行为更特殊,一般调试用不到。

Q4 · 有现成的常用正则吗?

有——页面底部的模板库预置 20 条:邮箱、URL、IPv4、手机号、日期、日期时间、千分位数字、中文字符、HEX 颜色、MD5/SHA-256 哈希、UUID、整数小数、HTML 标签、key=value、日志级别行、身份证长度、IP:端口、双引号字符串、连续空白。点击即填入表达式与测试文本,改一改就能用。所有模板无嵌套量词,不会触发灾难性回溯。

Q5 · 不同语言的正则语法有区别吗?

核心语法(字符类、量词、分组)通用,但细节有差异:JavaScript 的正则近年已补齐 lookbehind 等高级特性,Python 的 re 与 PCRE 语法接近,Go 的 RE2 干脆不支持回溯(也就没有灾难性回溯问题)。本工具使用 JavaScript 引擎,结果与 JS/TS 代码里的行为一致;其他语言使用时注意核对语法差异。

嵌入代码

把下面的代码复制到你的网页,即可将本工具嵌入为 iframe(自动隐藏导航与页脚)。

高度px
此工具在你的浏览器本地运行,输入内容不会上传。按 Ctrl K 可随时切换到其他工具。