批量查找替换实战:正则、大小写敏感、多组规则一次搞定
用浏览器本地的批量查找替换工具处理大段文本,讲清楚正则替换、捕获组、大小写敏感、全词匹配和多条规则链式应用,文本不上传,带一个真实的替换前后例子。
批量查找替换实战:正则、大小写敏感、多组规则一次搞定
文字处理器里那个「查找下一个」按钮,处理几百行文本时真能把人逼疯。改一个项目名,点十几次确认;规整一份脏文档,弯引号、双空格、破折号分三轮各扫一遍。我自己以前就是这么干的,直到把这套活儿挪到 批量查找替换工具 上,才发现大段文本本该一次过。
下面把几个真正影响结果的点说清楚:多条规则怎么排、正则和捕获组怎么写、大小写和全词匹配什么时候开,以及为什么所有运算都留在你自己的浏览器里。
多条规则链式应用,顺序决定结果
这个工具和普通正则测试器最大的不同,是规则可以叠很多条,从上到下依次执行,后一条作用在前一条改完的文本上。
举个会踩坑的例子。规则 1 把 USD 换成 $,规则 2 把 $ 换成 元,你以为这是两件独立的事,实际上每个 USD 会先变成 $,再被第二条吃掉变成 元,级联了。每条规则旁边都有自己的替换次数,盯着这个数字看,就知道是谁命中了谁的输出。顺序错了,用上下箭头调一下即可。
还有一个启用开关。想临时关掉某条规则验证一下效果,勾掉它就行,不用删,改完再勾回来。
大小写敏感和全词匹配,该开就开
默认情况下,查找文本按字面处理,这是最稳的状态。但有两个开关在改代码或改文档时几乎每次都要动。
「全词匹配」管的是边界。我把一段代码粘进聊天框,要把 getUser 全部改成 fetchUser,但绝不能动到 getUserId。打开全词匹配,getUserId 就被放过了。「区分大小写」管的是注释里那个 GetUser,我不想让它被扫进来,打开这个开关它就安全了。
两个开关配合用,替换次数会精确告诉我改了几处调用,结果区还会高亮每一处,复制前肉眼核一遍,不会漏掉另一个对象上的同名方法。
正则替换和 $1 捕获组
把规则的「正则」开关打开,查找框就支持完整的 JavaScript 正则,替换框里能用反向引用。这是处理结构化文本最省力的地方。
最常见的场景是重排日期。导出的 CSV 里日期列是 2024-01-31,下游系统偏要 31/01/2024。把想复用的部分用括号包起来,在替换里用 $1、$2、$3 引用:
- 查找:
(\d{4})-(\d{2})-(\d{2}) - 替换:
$3/$2/$1
整列粘进来,复制,粘回去,一条规则改写每一行。$0 是整个命中,命名组 (?<year>\d{4}) 也支持,用 $<year> 引用。如果某条正则写错了,只在那一条上给出内联报错,其他规则照常跑,不会整个页面崩掉。想先把模式调对再来跑,可以用 正则测试工具 把 flag 和捕获组验证好,再拿到这里批量执行。
一个真实的替换前后例子
拿一份作者交来的脏文档说事。原文:
版本 1.0 -- 初稿 完成于 2024-03-15。
版本 2.0 -- 终稿 完成于 2024-06-20。
里面有用 -- 当破折号、句中双空格、ISO 格式日期三个问题。叠三条规则一次跑完:
- 查找
--,替换,(纯文本) - 查找两个空格,替换一个空格(纯文本)
- 打开正则,查找
(\d{4})-(\d{2})-(\d{2}),替换$3/$2/$1
输出:
版本 1.0,初稿 完成于 15/03/2024。
版本 2.0,终稿 完成于 20/06/2024。
三种问题在一次粘贴、一次复制里全部清掉,不用在文字处理器里反复查找替换。
文本不上传,全程浏览器本地运算
所有匹配和替换都是浏览器标签页里跑的纯 JavaScript,匹配引擎是原生 RegExp,不引第三方库,不发网络请求。你的原文和替换规则不离开页面,也不做任何记录。
唯一要留意的是「分享链接」按钮:它会把当前原文和所有规则编码进 URL,对方打开就是同样的配置,分享一段公开片段很方便。但这意味着对方服务器的访问日志会看到你框里填的内容,所以文本机密时,手动复制结果,别用分享 URL。
整理完一段文本后,如果还想去掉重复行或按字母排序,可以接着用站内其他文本工具串起来。多数日常活儿,这套批量查找替换已经够用了。
Made by Toolora · Updated 2026-06-13