正则替换在线 - 捕获组批量替换、脱敏与文本清理
使用正则表达式和捕获组批量替换日志、日期、配置和普通文本,支持在本地预览结果;执行生产文件前应保留原文、检查匹配范围并准备回滚版本。
功能特点
- 实时预览正则匹配与替换后的完整文本
- 区分全局、多行、大小写标志和捕获组替换,并支持先预览再回滚
- 支持命名捕获组、替换引用与大文本处理边界,不把文本替换当作结构化解析
使用方法
- 粘贴副本并输入表达式、替换文本和所需标志
- 逐项检查匹配数量、捕获组、命名组和替换预览
- 用文本对比审查最终结果,保留备份后再应用到真实文件;大文本先分批处理
示例输入
日志脱敏
email=alice@example.com -> email=***适合用捕获组批量替换敏感字段展示值。
批量调整日期
2026/07/19 -> 2026-07-19适合把匹配到的年月日捕获后重排输出。
命名组与数字引用
表达式:(?<key>user_id)=(?<value>\d+) 替换:$1=id:$2 结果:user_id=id:42当前替换预览会展开数字引用 $1、$2;命名组可以显示在分组结果中,但
lt;name> 不会由此实现展开。大文本分批替换
输入:多行日志或配置副本 策略:按文件/区块分批,先统计匹配数再替换大文本应限制单次处理规模并保留原文件,避免页面卡顿或误覆盖无法回滚。
示例输出
日志脱敏
email=***批量调整日期
2026-07-19命名组与数字引用
命名组:key=user_id;value=42;数字引用 $1/$2 输出:user_id=id:42;需用文本对比复核大文本分批替换
大文本分批:先统计匹配数,再处理副本并保留原文件回滚
常见错误
- 替换表达式里的 $1、$2 与目标语言语法可能不同,要按使用环境确认。
- 没有先预览匹配范围就全量替换,容易误伤正文中的相似内容。
- 多行文本替换时忘记开启对应标志,会只处理第一行或第一处。
- 替换结果必须先预览并用文本对比检查,不能直接覆盖唯一原文件。
- 命名捕获组、全局标志和多行标志的语法受运行时影响,复制到编辑器或脚本前要用目标环境复测。
- 当前替换预览只展开数字引用 $1、$2;需要使用 lt;name> 等命名替换语法时,必须在目标运行时单独验证。
适用场景
- 日志脱敏
- 批量文本清理
- 格式迁移
- 捕获组替换验证
实操检查
先看匹配预览和数量
替换器会输出替换后的文本、匹配计数和捕获组预览;应用前先确认第一条、最后一条和异常长匹配,避免表达式范围过宽导致批量误改。
用 Diff 作为回滚前检查
复制文本副本后执行替换,再把原文和结果交给文本对比工具审阅;保留原文件和可回滚版本,不要直接覆盖唯一的生产配置或日志。
页面专属核验
使用前与操作中
- 先按 JavaScript RegExp 的语法填写 pattern 和 flags;没有 g 时只替换首个匹配,m、s、i 等 flags 会改变匹配范围或大小写行为。
- 需要回填内容时优先用编号捕获组 `$1`、`$2`,并逐条查看页面的匹配预览和替换计数;当前回调只自行展开数字占位符,不要把命名替换占位符当成已支持。
- 批量改配置或日志前保留原文,先用含正例、无匹配和空捕获组的样本确认替换结果;表达式或 flags 无效时应先处理页面报错和原文回退。
结果出来后
- 输入 `(\w+)=(\d+)`、flags=`g`、文本 `a=1 b=2`、替换 `$1:$2` 时,是否得到 `a:1 b:2`、替换 2 处,并显示两组预览?
- 去掉 g 或让第二个捕获组未匹配时,替换次数、未改动文本和空组回填是否符合 JavaScript replace 的实际行为?
- 输入非法 pattern 或非法 flags 后,页面是否给出错误、计数为 0,并保留工具返回的原始输入,而不是输出半成品?
相关工具
工具边界
- 替换工具按文本匹配,不理解代码 AST、JSON 结构、日志语义或业务字段关系。
- 复杂表达式可能造成大量回溯,批量处理大文件时要关注耗时和内存。
- 不同语言对换行、捕获组、转义和替换占位符的规则不同。
与相似工具的区别
- 文本对比:正则替换执行批量文本改写;文本对比不会修改内容,更适合在替换前后审阅实际影响。
安全与兼容性
- 替换在浏览器本地执行;处理真实配置和日志时仍应先备份,并移除可能出现在导出结果中的凭据。
- 不同环境用 $1、\1 或命名组表示替换引用,复制规则前必须按目标引擎验证转义和换行。
下一步排查
- 先用正则测试器验证匹配范围,再确认全局、多行和大小写标志。
- 替换后用文本对比检查配置、JSON、日志或代码是否发生非预期变化。
- 处理生产文件前保留备份,并在目标语言或编辑器中用小批量样本复核。
常见问题
$1 和 \$1 都表示第一个捕获组吗?
不一定。替换语法取决于 JavaScript、Python、Shell 或编辑器,必须按目标环境确认反向引用写法。
为什么只替换了第一处?
通常是没有启用全局替换,或目标工具默认只替换首个匹配;先查看 flags 和替换模式。
批量替换前要做什么?
先预览匹配范围,用文本对比检查结果,并保留原文件或版本控制回滚点。
为什么替换结果和预期多出一段?
常见原因是捕获组引用、命名组语法或转义层不匹配;逐项核对匹配结果中的组编号/名称,再按目标运行时确认替换占位符。