怎么用
- 把要修改的文字粘贴到「文字」框里。
- 在「查找」里输入要找的内容,下方预览会高亮每一处匹配,并显示一共找到几处。
- 在「替换为」里输入新内容。留空就是把匹配到的内容删掉。
- 按需勾选选项:「区分大小写」让 A 和 a 被当作不同的字母;「整词匹配」让 cat 不会匹配到 catalog 里面;「识别 \n 和 \t」用来查找或插入换行、制表符;「正则表达式」用来按规律匹配。
- 点「全部替换」把修改写回文字框,或者点「复制结果」只复制修改后的文字、不动原文。「撤销」可以一步步退回之前的替换。
匹配规则
普通模式
默认模式下,两个框里的内容都按字面理解:句点就是句点,替换内容里的 $ 就是美元符号。日常的改名、统一措辞、修正反复出现的错别字,用这个模式最稳妥。匹配不会重叠:把「aaa」里的「aa」替换掉,只会改前两个字母,第三个保持不变。
正则表达式
正则模式采用 JavaScript 语法,规则可以参考 MDN 的正则表达式指南。它会替换全部匹配;^ 和 $ 匹配每一行的开头和结尾;并且按完整的 Unicode 字符处理,一个表情符号算一个字符,而不是两半。替换内容里可以用特殊写法插入匹配的一部分:$& 是整个匹配,$1 到 $99 是编号分组,$<名字> 是用 (?<名字>…) 写的命名分组。
整词匹配
很多工具用 \b 实现整词匹配,而 \b 只认识 A 到 Z 这些英文字母,会把 café 当成在词中间断开。这个工具改为检查匹配两侧的字符是否属于任何文字的字母、数字或下划线。中文、日文本来就不用空格分词,整词匹配对它们没有实际意义,处理中文时不必勾选。
失控的表达式
有些写法,比如 (a+)+$,在「差一点就能匹配」的文本上会耗费指数级的时间,这个问题叫灾难性回溯,也被当作一种拒绝服务攻击手段,称为 ReDoS。这里的查找在单独的后台线程里运行,超过两秒自动中止,所以写错的表达式不会把页面卡死。
算例
| 任务 | 查找 | 替换为 | 结果 |
|---|---|---|---|
| 手机号打码 | (\d{3})-(\d{4})-(\d{4})(正则) | $1****$3 | 138-0000-1234 → 138****1234 |
| 日期改格式 | (\d+)-(\d+)-(\d+)(正则) | $3/$2/$1 | 2026-09-28 → 28/09/2026 |
| 删除多余空行 | \n{2,}(正则) | \n(开启转义) | 连续三个换行变成一个 |
| 合并多余空格 | \s+(正则) | 一个空格 | one two three → one two three |
| 逗号分隔改成每行一个 | ,(开启转义) | \n | a,b,c → 每项一行 |
| 每行加前缀 | ^(正则) | > | 每一行开头都加上 > |
| 给数字加括号 | \d+(正则) | [$&] | a1b22 → a[1]b[22] |
普通模式下,把「price $5」里的 $5 替换成 $10,得到「price $10」,美元符号不会被当成分组引用。勾选「整词匹配」后,把「cat catalog concat」里的 cat 替换成 dog,只有第一个词会被替换。
整理从网页或 PDF 复制来的文字时,最常用的是前三行:先用「删除多余空行」去掉段落之间的大片空白,再用「合并多余空格」清理排版留下的空格,最后按需要调整格式。每一步都会先显示找到几处,确认无误再替换。
局限
- 只支持 JavaScript 正则语法。 其他引擎特有的写法,比如 PCRE 的占有量词、\A 和 \Z,不能使用;后行断言、命名分组和 \p{L} 这类 Unicode 属性都支持。
- 预览只显示前 20000 个字符, 最多高亮 5000 处匹配。计数和替换始终覆盖全文。
- 手动修改文字后,撤销记录会清空。 在文字框里打字会开始新的历史。
常见问题
怎样把内容替换成换行?
勾选「识别 \n 和 \t」,在「替换为」里输入 \n。
为什么「.」把所有字都匹配上了?
你开启了正则模式,. 在正则里表示「任意字符」。关掉正则,或者写成 \. 来匹配句点本身。
替换时怎样保留匹配到的内容?
在正则模式下,$& 表示整个匹配,$1、$2 表示各个括号里的部分。
能批量删除某个词吗?
可以。「替换为」留空,点「全部替换」即可。
文字会上传吗?
不会。匹配在你自己浏览器的后台线程里完成。