正则替换在线 - 捕获组批量替换、脱敏与文本清理

使用正则表达式和捕获组批量替换日志、日期、配置和普通文本,支持在本地预览结果;执行生产文件前应保留原文、检查匹配范围并准备回滚版本。

功能特点

  • 实时预览正则匹配与替换后的完整文本
  • 区分全局、多行、大小写标志和捕获组替换,并支持先预览再回滚
  • 支持命名捕获组、替换引用与大文本处理边界,不把文本替换当作结构化解析

使用方法

  1. 粘贴副本并输入表达式、替换文本和所需标志
  2. 逐项检查匹配数量、捕获组、命名组和替换预览
  3. 用文本对比审查最终结果,保留备份后再应用到真实文件;大文本先分批处理

示例输入

  • 日志脱敏

    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 或命名组表示替换引用,复制规则前必须按目标引擎验证转义和换行。

下一步排查

  1. 先用正则测试器验证匹配范围,再确认全局、多行和大小写标志。
  2. 替换后用文本对比检查配置、JSON、日志或代码是否发生非预期变化。
  3. 处理生产文件前保留备份,并在目标语言或编辑器中用小批量样本复核。

常见问题

$1 和 \$1 都表示第一个捕获组吗?

不一定。替换语法取决于 JavaScript、Python、Shell 或编辑器,必须按目标环境确认反向引用写法。

为什么只替换了第一处?

通常是没有启用全局替换,或目标工具默认只替换首个匹配;先查看 flags 和替换模式。

批量替换前要做什么?

先预览匹配范围,用文本对比检查结果,并保留原文件或版本控制回滚点。

为什么替换结果和预期多出一段?

常见原因是捕获组引用、命名组语法或转义层不匹配;逐项核对匹配结果中的组编号/名称,再按目标运行时确认替换占位符。