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

如何在KQL中提取Sentinel日志指定字符间的邮箱地址?

解决KQL中从additionalextensions列提取邮箱地址的问题

问题原因

KQL采用的RE2正则引擎不支持后向断言(lookbehind),所以你之前使用的(?<=:).*(?=;s)这类依赖断言的正则无法生效。

可行实现方法

方法一:使用extract()函数(正则捕获组)

通过正则捕获组直接定位目标内容,无需依赖断言:

// 替换YourTable为实际表名
YourTable
| extend EmailAddress = extract(@"account=O365:(.*?);s", 1, additionalextensions)
  • 正则account=O365:(.*?);s:精准匹配account=O365:开头、;s结尾的片段,(.*?)非贪婪捕获中间的邮箱内容
  • extract()的第二个参数1表示提取第一个捕获组的内容

方法二:使用split()函数(无正则,性能更优)

如果日志格式固定,直接通过字符串拆分更高效:

// 替换YourTable为实际表名
YourTable
| extend EmailAddress = split(split(additionalextensions, "account=O365:")[1], ";s")[0]
  • 第一步split(additionalextensions, "account=O365:")[1]:拆分出account=O365:之后的所有内容
  • 第二步split(..., ";s")[0]:将上述内容拆分出;s之前的部分,即目标邮箱地址

验证结果

针对示例日志cat=EXFILTRATION;account=O365:email.address@test.org.uk;start=1659975196000;end=165997519600,两种方法均可提取出email.address@test.org.uk。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:48:14