关于本文
本文是通过利用生成式 AI 的自动化生成流程创建的。我们查阅了 Microsoft 的 REGEXEXTRACT / REGEXREPLACE 官方资料,并整理成了不使用真实数据、而是从虚拟日志中提取和脱敏必要项的形式。验证状态:📘 已确认 Microsoft 官方规范・Excel 实机未验证
利用 Microsoft 365 版 Excel 的正则表达式函数,无需将日志转移到其他工具,即可直接在单元格中尝试“仅提取 ID”、“隐藏邮箱地址”等预处理。核心要点是:不要一开始就编写复杂的正则表达式,而是先通过 1 行虚拟数据查看结果,然后再逐步扩展范围。
首先尝试
在 A2 单元格中输入以下虚拟日志。
2026-09-13 user=demo@example.com id=AB-123 ip=192.0.2.10 status=500
在 B2 单元格中输入以下公式。
=REGEXEXTRACT(A2,"id=[A-Z]{2}-[0-9]{3}")
期望的结果如下。
id=AB-123
观察这里
拆解正则表达式后,其含义便一目了然。
| 部分 | 含义 |
|---|---|
id= | 字面意思上的 id= |
[A-Z]{2} | 2 个大写英文字母 |
- | 连字符 |
[0-9]{3} | 3 位数字 |
Microsoft 的 REGEX 系列函数使用 PCRE2 类型的正则表达式。正则表达式虽然强大,但如果不限定输入格式而盲目制作万能模式,误报率就会增加。
尝试对邮箱地址进行脱敏
在 C2 单元格中输入以下内容。
=REGEXREPLACE(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}","***@***")
demo@example.com 会被替换为 ***@***,而 id=AB-123 和 status=500 将会被保留。
这里的重要之处在于:不修改原单元格,将转换结果输出到其他单元格。在进行日志调查时,保留原始数据以便与处理结果进行对比。
修改一处试试
将 A2 中的 ID 修改为以下内容。
id=ABC-123
最初的公式将无法按预期获取。原因是 [A-Z]{2} 限定了“2 个大写字母”。
如果也允许 3 个字符,只需将该部分修改为下文。
=REGEXEXTRACT(A2,"id=[A-Z]{2,3}-[0-9]{3}")
{2,3} 意为“2 到 3 次”。修改一处并观察结果差异,这样就能理解量词的含义,而无需死记硬背正则表达式。
不要试图用正则表达式完全判定邮箱的有效性
这次针对邮箱的模式只是一种教学素材,用于从虚拟日志中“找出形似邮箱的字符串并将其隐藏”。它并不是用来严格验证世上所有有效邮箱地址的公式。
同理,IP 地址如果写作 \d+\.\d+\.\d+\.\d+ 也可以抓取其外形,但甚至会把 999.999.999.999 也抓进去。提取与有效性验证是两码事。
如果在工作中实际应用
即使是文职或客服人员,也可以将其用于以下工作:
从系统部门接收的日志列表中仅提取受理 ID
在向供应商或 AI 提供数据前对邮箱地址进行脱敏
仅将错误代码提取到单独的列中并汇总数量
从几百行自由文本中提取特定格式的管理编号
但是,正式日志中还可能混有姓名、内部主机名、URL 查询字符串、令牌(token)等其他敏感信息。不能仅凭邮箱被消除就判定为安全,在分享前必须由人工对转换后的内容进行再次确认。

