Skip to content

正则查找替换/测试 ​

一份两千行的日志要把所有手机号替换成 ***;或者从一堆 URL 里把参数部分统一去掉。手工改不现实,正则是唯一可行的办法——但写错一个字符就可能把整份文本改坏。

「正则查找替换/测试」工具页填入示例输入后的界面:原始文本 / 参数配置 / 模式 / 替换 / 测试 / 匹配预览 / 正则表达式 / 替换为 / 全局匹配 / 实时预览;页头标签「浏览器本地执行 · 免费」

「正则查找替换/测试」填入示例输入后,右侧即时给出结果(图中数据为示例)。在浏览器本地完成、数据不离开浏览器,免费。

先测试,再替换 ​

工具有两个模式,顺序不能反:

测试匹配——只显示命中了什么、每个捕获分组各是什么,不改动原文。

查找替换——真的替换。

正确用法:先在测试模式下看看究竟命中了什么。正则的常见事故不是「没匹配上」(那你会立刻发现),而是匹配范围超出预期——本想改 5 处,实际改了 50 处,而结果看起来还挺正常。

贪婪匹配:最常踩的坑 ​

.* 是贪婪的,它会匹配尽可能长的内容。

想从 <b>粗体</b>和<b>另一个</b> 里去掉标签,写 <b>.*</b> 会一口气匹配到最后一个 </b>,把中间的「和」也吞掉。

正确写法是加问号变成非贪婪:<b>.*?</b>。

判断方法:在测试模式下看匹配结果的长度。明显比预期长,就是贪婪的问题。

几个高频写法 ​

目标写法
手机号1[3-9]\d{9}
邮箱[\w.-]+@[\w.-]+\.\w+
连续空行\n{2,}
行首空白^\s+(需开多行模式)
URL 参数\?[^\s]*

捕获分组:调换顺序用得上 ​

用括号捕获,替换时用 $1、$2 引用。

把 2026-09-05 改成 09/05/2026:

查找:(\d{4})-(\d{2})-(\d{2})
替换:$2/$3/$1

这是正则最有价值的用法之一——不只是删改,还能重排结构。

全局匹配这个开关 ​

默认开启,替换所有命中。

关掉只替换第一处。用得少,但在「只想改文件里第一次出现的那个」时有用。

一条纪律 ​

替换前把原文另存一份。 正则替换在这个工具里是一次性的,改坏了没有撤销。写得越复杂越要留底。

浏览器本地处理 ​

文本不上传服务器。日志、用户数据可以放心处理。

相关工具 ​

最后更新:2026-09-05