如何在 JSON 字符串中精准掩码邮箱地址(基于正则表达式的可靠方案)
发布时间 - 2026-01-30 00:00:00 点击率:次本文介绍一种安全、可复用的正则表达式方法,用于在 json 字符串中定位并掩码邮箱字段的局部字符(如 t***.***%**@gmail.com),避免误匹配 html 标签或 json 结构,解决传统宽泛正则在嵌套内容中失效的问题。
在处理敏感数据(如用户邮箱)时,常需对 JSON 格式的 API 响应或日志进行脱敏。但直接复用纯邮箱字符串的掩码正则(如 (?作用域,会错误匹配引号内任意位置(包括 HTML 属性、data-cfemail 值甚至 JSON 键名),且 Java 中的 (?固定长度,而原正则中的 .{1} 无法与后续动态内容协同定位。
✅ 正确思路是:锚定上下文 + 有限宽度回溯 + 安全边界约束。推荐使用以下优化正则:
String jsonString = "{ \"name\":\"jhon\", \"email\":\"test.ing%[email protected]\" }";
String masked = jsonString.replaceAll("(?<=email\":\"[^\\s\"]{1,100})[a-zA-Z0-9](?=[^\\s\"@]*@)", "*");
System.out.println(masked);
// 输出: { "name":"jhon", "email":"t***.***%**@gmail.com" }? 正则解析:
- (?
- [a-zA-Z0-9]:精确匹配邮箱本地部分(@ 前)中需掩码的单个字母或数字;
- (?=[^\\s\"@]*@):正向后行断言,确保该字符右侧直到 @ 之间不包含空格、双引号或 @ 自身(防止误入 data-cfemail 或 URL)。
⚠️ 注意事项:
- 长度阈值可调:{1,100} 中的 100 应根据实际邮箱最大长度(含 HTML 标签)调整,过小会漏匹配,过大可能越界;
- 仅掩码本地部分:此方案默认不对域名(@gmail.com)做掩码;如需隐藏域名,可额外添加类似规则(如 (?
- JSON 解析优先于正则:生产环境强烈建议优先使用 Jackson/Gson 解析 JSON,定位 email 字段后再对值做掩码(更健壮、防注入),正则仅适用于无法修改解析逻辑的场景(如日志中间件);
- 转义细节:Java 字符串中反斜杠和双引号必须双重转义(\\s、\\\"),切勿遗漏。
总结:该正则通过“上下文锚定 + 字符类限制 + 边界防护”三重机制,在

# java
# html
# js
# json
# 正则表达式
# ai
# cdn
# 邮箱
# 作用域
# 敏感数据
# 中间件
# 字符串
# 掩码
# 可调
# 复用
# 双引号
# 推荐使用
# 适用于
# 如需
# 过大
# 则在
# 强烈建议
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在阿里云服务器自主搭建网站?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel如何实现事件和监听器?(Event & Listener实战)
Laravel如何处理表单验证?(Requests代码示例)
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Laravel如何创建自定义中间件?(Middleware代码示例)
如何在IIS中新建站点并解决端口绑定冲突?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Mybatis 中的insertOrUpdate操作
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Internet Explorer官网直接进入 IE浏览器在线体验版网址
黑客如何利用漏洞与弱口令入侵网站服务器?
网站制作免费,什么网站能看正片电影?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
如何快速登录WAP自助建站平台?
如何在橙子建站上传落地页?操作指南详解
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何选择可靠的免备案建站服务器?
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
轻松掌握MySQL函数中的last_insert_id()
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
EditPlus中的正则表达式实战(6)
如何注册花生壳免费域名并搭建个人网站?
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
如何在建站宝盒中设置产品搜索功能?
潮流网站制作头像软件下载,适合母子的网名有哪些?
怎么用AI帮你为初创公司进行市场定位分析?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
如何在 Pandas 中基于一列条件计算另一列的分组均值
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
*服务器网站为何频现安全漏洞?
Bootstrap整体框架之CSS12栅格系统
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
如何在景安服务器上快速搭建个人网站?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
如何快速搭建二级域名独立网站?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
香港服务器建站指南:免备案优势与SEO优化技巧全解析

