【问题标题】:Kusto query to get the file extension from the message log using regexKusto 查询以使用正则表达式从消息日志中获取文件扩展名
【发布时间】:2021-05-11 03:12:05
【问题描述】:

我正在尝试从 Kusto 消息日志中获取文件扩展名。以下是我的日志的外观:

"Symchk result for D:\pkgshadow\19H1\999907\files.csi\arm64\neutral\fre\Microsoft-OneCore-VirtualizationBasedSecurity-Package~31bf3856ad364e35~amd64~~10.0.21380.1020.mum is NOTAPPLICABLE"

我想从上面的日志中获取扩展名“mum”。

以下是我尝试过但不起作用的查询。

| extend filepath = trim_start("Symchk result for ", trim_end(" is NOTAPPLICABLE", ParsedMsg))
| extend extension = extract(**@"([^\\]*\.\w+\s)"**, 1, filePath)
| project extension

我正在使用上述正则表达式获取文件(即 Microsoft-OneCore-VirtualizationBasedSecurity-Package~31bf3856ad364e35~amd64~~10.0.21380.1020.mum)作为输出。我想获得文件的扩展名(即mum)。 有人可以帮我解决这个问题吗?

【问题讨论】:

  • 嗨@Arvund。两个不同的人回答了你的问题。请检查答案,投票选出对您有帮助的答案,并接受对您帮助最大的答案(请参阅this 了解原因)。

标签: regex kql


【解决方案1】:

这样就可以了:

print @"Symchk result for D:\pkgshadow\19H1\999907\files.csi\arm64\neutral\fre\Microsoft-OneCore-VirtualizationBasedSecurity-Package~31bf3856ad364e35~amd64~~10.0.21380.1020.mum is NOTAPPLICABLE"
| project extract("\\.([a-z]{3}) ", 1, print_0)

输出:

mum

【讨论】:

    【解决方案2】:

    您可以使用extract 来使用捕获组。

    [^\\]*\.(\w+)\s
    

    模式匹配:

    • [^\\]* 可以选择匹配除\ 之外的任何字符
    • \.匹配一个点
    • (\w+)在第 1 组中捕获 1+ 个单词字符
    • \s 匹配一个空格字符

    Regex demo

    【讨论】:

      猜你喜欢
      • 2013-03-18
      • 2015-06-08
      • 1970-01-01
      • 2022-11-19
      • 2022-11-28
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多