批量文本替换 一次处理多个文件、多条规则:把一批文本文件(TXT、代码、配置、字幕、Markdown、CSV…)拖进来,规则表左边填要找的内容、右边填改成什么,执行前就能看到每条规则命中了哪些行,确认无误再导出 ZIP 或原地覆盖。
| 编辑器里逐个替换 | 这个工具 | |
|---|---|---|
| 文件数 | 一个一个开 | 拖一个文件夹进来,一次全改 |
| 规则数 | 一条一条来 | 几百条一起跑,一遍扫完 |
| 规则互相影响 | 后一条会改到前一条的结果 | 同时生效,原文每个位置只被命中一次 |
| 改之前 | 看不到会改成什么样 | 按文件列出命中行,旧词划掉、新词标绿 |
| 编码 | 开错编码就是一屏乱码 | 逐个探测 GBK / UTF-8 / Big5,可统一导出 |
. ( $ 都是字符本身,不用转义.*):查找框按正则解释,替换框里可以用 $1 $2 引用分组、$& 引用整段匹配;^ $ 是行锚点(等于永远带 m),^\s+ 去的是每一行的缩进cat 不再命中 category;只对英文数字生效,中文不受影响 —— 中文没有词边界,「张三」在「我张三说」里照样算命中->、=、逗号都认;两列的首尾空格会去掉,确实要留空格就用引号包起来,如 ", "规则会存在本机,下次打开还在。换设备用「导出」带走一份 JSON。
文件和规则从头到尾留在你的浏览器里,不上传、不联网。规则存在 localStorage,清浏览器数据会一起清掉。
按一张对照表成批改词,一律选同时生效(默认)。它把原文扫一遍,每个位置只被一条规则命中:规则 A→B 和 B→C 同时存在时,原文的 A 变成 B 就停住,原文的 B 变成 C,互不干扰。依次执行是先把全文的 A 换成 B,再把全文的 B(包括刚换出来的那些)换成 C,A 最终变成了 C —— 只要表里新旧写法互相咬尾(这在改名、改术语、改域名时太常见了),依次执行跑出来的就是一串连锁误改,而且改完从结果里看不出哪儿错了。只有当你确实想要「先做这步、再在结果上做下一步」时才切到依次执行。
同时生效模式下长词优先,和你在列表里的先后顺序无关:同时有「张三」和「张三丰」两条规则时,「张三丰」会整体命中它自己那条,不会被「张三」那条切掉前两个字;user 和 username 同理。这一条是专门处理的 —— 正则的 | 本身取的是最先匹配的分支而不是最长的,照原样合并就会踩这个坑。正则规则排在所有纯文本规则之后,彼此保持列表顺序。
就是把这个词删掉。成批清理用的就是这个:查找框填要删的内容,替换框空着。粘贴对照表时,一行里只有左边有内容、右边是空的(比如那个词后面直接跟一个 Tab),也会被解析成删词规则。
两种都行。用「选择文件夹」载入(Chrome / Edge)可以原地覆盖,改完就是磁盘上的文件;拖进来或用「选择文件」载入的,只能 ZIP 打包下载 —— 这不是工具偷懒,浏览器本来就不允许网页回写你拖进去的文件。原地覆盖不可撤销、不进回收站,所以确认框里默认勾着「先下载一份原文件备份」,备份失败会直接中止覆盖。没有命中的文件不会被重写。
两回事。打开就乱是读的时候编码猜错了 —— 文件行上有个编码标签,黄色的表示是按内容推断的,在文件列表上方把「编码:自动探测」改成 GBK 再读一次就好,命中数会立刻变正常。改完才乱是写出去的编码和打开它的软件对不上:导出时把输出编码选成 UTF-8 并勾上「加 BOM」,Windows 记事本和 Excel 就认得了。
认纯文本:txt、md、srt/vtt/ass、csv/tsv、json/xml/html、js/ts/css、yml/ini/conf、log、sql 等,以及任何 MIME 为 text 的文件;.docx、.pdf、图片这类会被自动跳过(当文本打开只会得到乱码)。单个文件 50MB 以内,一次最多 2000 个文件,规则最多 1000 条。替换跑在 Web Worker 里,不占主线程 —— 几百个文件配几百条规则,页面照样能滚动、能继续改规则。文件全程留在你的浏览器里,不上传、不联网,断网也能用。
不一定坏,但值得看一眼 —— 命中 0 的规则会标成橙色,就是为了让你发现这类问题:查找词打错了、多了个空格、原文里用的是全角标点而你写的是半角、大小写没对上(默认是区分大小写的)、或者这个词根本不在这批文件里。如果整批文件命中都是 0,先确认编码读对了(见上一条)。
Regex Pro 是单文本、单条正则的测试台,用来把一条正则调对(带语法着色和中文解释);调好了再拿到这里来跑多文件。文件批量重命名改的是文件名,不动文件内容;这个工具正相反,改内容不改文件名。
->、=、逗号。右边留空 = 把这个词删掉。# 开头的行当注释跳过。
两列的首尾空格会被去掉,确实要保留空格就用引号把那一列包起来,如 ", "。
A→B、B→C 同时存在时:同时生效把原文扫一遍,原文里的 A 变 B 就停住、原文里的 B 变 C,互不干扰;依次执行先把全文的 A 换成 B,再把全文的 B(含刚换出来的)换成 C,A 最终变成 C。.* 后,查找框按正则解释,替换框可以用 $1 $2 引用分组、$& 引用整段匹配、$$ 表示一个美元符。.* 的规则一律按字面处理:查找框里的 . ( 就是这个字符本身,替换框里的 $1 也原样输出。^ $ 是行锚点,不是整个文件的头尾(等于永远带 m 标志):^\s+ 去掉的是每一行的缩进。a*)会被拒绝并标红 —— 它会在每个位置插一遍替换文本。数字反向引用超出本条规则自己的分组数时同样会标红。全词)cat 不会命中 category。.* 和 全词 两个开关;区分大小写是整表统一的(在「匹配方式」卡片里)—— 所有规则要合成一个正则做一遍扫描,做不到一条一条设。