You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则能否替换匹配组的部分字符?邮箱部分脱敏实现方案问询

正则实现邮箱指定位置脱敏方案

这个需求可以通过正则实现,核心是使用零宽断言锁定需要替换的字符位置,不需要额外拆分字符串处理,同时可以兼容你之前的短字符场景和长字符场景。


适配需求的正则规则

完整正则(PCRE兼容,支持Python、Java、Go、ES2018+版JavaScript、PHP等主流编程语言)

^[^@]{1,3}(?=[^@]*@)|(?<=@)[^.]{1,3}(?=[^.]*\.)

替换规则

直接替换所有匹配结果为 *** 即可。


效果验证

  • 测试短邮箱 123@abc.com:匹配到 123 和 abc,替换结果为 ***@***.com,兼容旧场景
  • 测试长邮箱 example123@abcdef.com:匹配到开头的 exa 和 @ 后的 abc,替换结果为 ***mple123@***def.com,完全符合需求
  • 测试极端短邮箱 a@bcd.com:匹配到 a 和 bcd,替换结果为 ***@***.com,满足脱敏要求

自定义调整方法

如果需要替换的字符数量不是3个,做两处修改即可:

  • 把正则中的 {1,3} 改为对应数量,比如替换前2个就改成 {1,2}
  • 替换内容的 * 数量和替换长度保持一致即可

内容的提问来源于stack exchange,提问作者banktomato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:24:02