批量查找替换

支持普通文本与正则,可选忽略大小写,逐处替换

批量查找替换:普通模式与正则模式的区别

两种模式的本质差别

普通模式正则模式
查找内容字面子串模式(模式字符有特殊含义)
特殊字符都是普通字符,无需转义. * + ? ( ) [ ] { } | ^ $ \\ 需要转义
替换内容原样写入$1、$& 等引用捕获组
典型用途改一个名称、换分隔符、删某个词重组格式、按模式规范化、提取并重排

用普通模式做"替换某个词"是最安全的选择——不需要考虑任何转义。切到正则模式后,一个 . 就会变成"任意字符",一个 ( 会变成分组开始,未配对的括号会直接报错。

正则模式下的替换引用

这是正则替换真正有用的地方——不只是替换,而是重组:

替换写法含义
$1 $2第 1、2 个捕获组的内容
$&整个匹配到的文本
$ 加反引号匹配之前的文本(该字符无法在本文档里直接写出,见 MDN 的 String.replace 文档)
$'匹配之后的文本
$$一个字面的美元符号

实用例子——把 2026-01-15 改成 15/01/2026:查找 (\d{4})-(\d{2})-(\d{2}),替换为 $3/$2/$1。用普通模式做不到这件事,因为它是"重排"而不是"替换"。

再看一个:给行首加缩进。查找 ^(\S),替换 $1(配合多行开关)。

三个容易出错的地方

检查一下再动手

批量替换是不可逆的(除非你保留了原文)。建议流程:

  1. 先用正则测试工具确认模式匹配到的是你想要的东西,看匹配数量和每个匹配的内容。
  2. 特别注意意外匹配。想替换 id 时会命中 userId、valid、hidden——用词边界 \bid\b 可以避免。
  3. 替换后通读一遍结果,别只看"替换完成"。
  4. 原文另存一份。工具的输出是只读的,替换前的原文还在输入框里,但如果你继续在输入框里编辑就会覆盖它。

替换在浏览器本地完成,含敏感信息的文本不会被上传。

常见问题

正则模式下替换框能用 $1 吗?

可以。替换内容支持 $1 $2 等反向引用,引用正则中的捕获组。

忽略大小写怎么和正则一起用?

勾选"正则"且勾选"忽略大小写"时,会自动加上 i 标志,匹配时不区分大小写。