🏠 首页
›
工具箱
›
正则表达式测试器
⚠️ 使用说明: · 结果为 JavaScript 正则(ECMAScript)语义 ,与 PHP(PCRE)、Python(re)、Java 的语法存在差异——例如 PHP 的 /(?P<name>…)/ 、Python 的 (?P=name) 在此不适用,JS 请用 (?<name>…) ; · 不支持 递归、条件分支、占有量词、原子组 等 PCRE 高级特性,粘贴这类正则会直接报错,属正常现象; · 为避免页面卡死,单次最多展示 5000 个匹配 ,超出部分不再统计; · 请留意灾难性回溯 :形如 (a+)+$ 的正则遇到长文本可能长时间无响应,这属于正则本身的性能问题; · 所有匹配与替换均在浏览器本地完成,文本不会上传服务器。
效率工具
完全免费
🌙 支持黑夜模式
🔒 纯前端本地处理
⚡ 边写边看结果
写正则最难受的不是语法难,而是反馈太慢 :改一下、跑一次脚本、看一眼输出、再改一下……一来一回几分钟就没了。 这个工具把反馈压缩成「零延迟 」:输入正则的同时,右侧立刻把所有匹配位置高亮出来,改一个字符就能看到命中范围的变化。 · 实时高亮 :所有匹配项在原文中直接标色,相邻匹配交替配色,一眼看出有没有漏匹配、有没有多匹配; · 分组可见 :点开任意一个匹配,就能看到它匹配到的内容和每个捕获组的值,编号组与命名组都会列出; · 修饰符随手开 :g / i / m / s / u 五个常用开关,切换即重算,不用去改字面量; · 替换预览 :填上替换表达式(支持 $1、$&),立刻看到替换后的完整文本,改完再拿去写代码; · 常用正则库 :手机号、邮箱、身份证、URL、IP、日期、中文等十几个高频正则一键套用,拿来就用或作为起点修改; · 错误友好 :正则写错会直接提示具体的语法错误信息,不用对着控制台猜。 常用于:日志里捞数据、表单校验规则调试、批量文本清洗、爬虫提取规则验证。 所有匹配与替换均在浏览器本地完成,文本不会上传服务器。
简介
玩法说明
更新记录
常见问题
留言
核心特性
实时匹配高亮
分组捕获查看
5 个修饰符开关
替换预览
常用正则库
语法错误提示
匹配位置与长度
支持黑夜模式
正则是「写得慢」还是「调得慢」
多数人对正则的畏难情绪,其实不来自语法本身,而来自调试体验 。 一个中等复杂度的正则,往往要经历十几次微调:量词加不加、贪婪还是懒惰、分组要不要非捕获、边界怎么写。如果每次修改都要「跑一遍代码、看一遍输出」,这十几轮下来就是十几分钟,注意力也在来回切换中被消耗掉。 反过来,如果修改和结果之间没有延迟 ——你敲一个字符,高亮范围立刻变化——整个过程就变成了一次连续的对话,你会很快建立起「这个写法会造成什么后果」的直觉。 本工具就是朝这个方向做的:把正则调试的反馈循环压到最短 。另外提醒一句:能在页面上调通的正则,别忘了在真机数据量下再验证一次性能 ——正确性和效率是两件事。
怎么用
第 1 步
把待匹配的文本粘贴到左侧下方的「测试文本」框。
第 2 步
在「正则表达式」输入框里书写正则,或用「常用正则库」点一个作为起点。
第 3 步
按需切换 g / i / m / s / u 修饰符,观察右侧高亮范围的变化。
第 4 步
在下方「匹配详情」里逐条核对捕获组;需要批量改写时填入「替换预览」表达式,确认后再用到代码里。
更新记录
v1.0
2026-09-11
工具上线:支持实时匹配高亮 (相邻匹配交替配色)、匹配位置与长度统计;支持 g / i / m / s / u 五个修饰符独立开关;提供匹配详情列表 ,逐条展示匹配内容、字符位置与全部捕获组(含命名组);支持替换预览 ($1、$&、$`、$' 语法);内置常用正则库 (手机号、邮箱、身份证、URL、IPv4、日期时间、中文、数字、HTML 标签等)一键套用;正则语法错误即时提示;单次最多展示 5000 个匹配以防卡死;适配黑夜模式 ;纯前端本地处理。
常见问题
为什么我在 PHP / Python 里能用的正则,这里报错了?
因为本工具使用的是浏览器的 JavaScript 正则引擎(ECMAScript) ,它与 PCRE、Python、Java 的正则存在语法差异。常见的不兼容点: · 命名分组写法不同 :PHP / .NET 是 (?P<name>…) 或 (?<name>…) ,JS 只支持 (?<name>…) ; · 不支持的高级特性 :递归 (?R) 、条件分支 (?(1)…) 、占有量词 a++ 、原子组 (?>…) 、\K 、\p{...} 的部分写法等; · 部分转义不同 :如 \A 、\Z 、\h 在 JS 中无效。 建议先用本工具把逻辑调通,再把写法替换成目标语言的等价形式。
为什么开启了 g 之后,匹配结果和我预期的不一样?
关键在于「g 全局匹配」的含义是在整段文本中持续向后查找 。 · 开启 g:找出文本里所有 符合的位置,这也是本工具默认开启的原因; · 关闭 g:只返回第一个 匹配,适合先验证正则能否命中; · 另外要注意 零长度匹配 :像 \b 、(?=x) 这类断言匹配到的内容长度为 0,它们在高亮区看不出颜色变化,但会出现在匹配列表里——这是正常现象。 顺带一提,^ 与 $ 默认只匹配整段文本的开头与结尾,想让它按行匹配,请勾选 m 。
替换预览里的 $1、$& 是什么意思?
这些是替换引用 ,用来在替换结果中引用匹配到的内容: · $1、$2 … :引用第 1、第 2 个捕获组的内容;$<name> 引用命名组; · $& :引用整个匹配到的文本 ; · $` :引用匹配内容之前 的文本;$' :引用匹配内容之后 的文本; · $$ :输出一个字面量美元符号。 例如用 [$1] 替换 \d+ ,就能把每个数字串都加上中方括号。 注意 $0 在 JS 中不是「整个匹配」,如需整个匹配请用 $& 。
为什么只显示 5000 个匹配?文本会上传吗?
限制数量是为了防止页面卡死 :当匹配数量达到数万时,浏览器的 DOM 渲染会成为瓶颈,页面会明显卡顿。 如果你确实需要处理大量匹配,建议: · 先用更精确的正则缩小匹配范围 ; · 或者把文本分批粘贴,逐段验证。 所有匹配与替换都在你的浏览器本地完成,文本不会上传服务器 ,也不会写入存储,关闭页面即清空。
💬 留言板 0
全部留言需审核通过后展示
🎉
留言已提交!
审核通过后就会展示在留言板上,稍安勿躁~
再留一条
还没有留言,来抢沙发吧!