azure - 正则表达式的 Azure Log Analytics 语法错误
问题描述
我正在为以下日志类型的日志文件编写 DNS 解析器:
18/03/2020 07:08:23 1164 数据包 000000C164RF56B0 UDP Rcv 10.128.151.34 076e Q [0001 D NOERROR] A (10)indelpus03(6)kworld(4)kay(3)com(0)
我试图抓住 [] 里面的任何东西 - 因此是 0001 D NOERROR。我有以下正则表达式,他有效:
(?<=[)(.*?)(?=])
但是,当我在 KQL 上测试它失败时,它说语法错误。如果有人有解决方案,请告诉我。域名等的正则表达式也是如此
解决方案
这里有两种方法:
1)使用解析运算符:https ://docs.microsoft.com/en-us/azure/kusto/query/parseoperator
print m = '18/03/2020 07:08:23 1164 PACKET 000000C164RF56B0 UDP Rcv 10.128.151.34 076e Q [0001 D NOERROR] A (10)indelpus03(6)kworld(4)kay(3)com(0)'
| parse m with * '[' Message ']' *
2) 使用 extract() 函数:https ://docs.microsoft.com/en-us/azure/kusto/query/extractfunction
print m = '18/03/2020 07:08:23 1164 PACKET 000000C164RF56B0 UDP Rcv 10.128.151.34 076e Q [0001 D NOERROR] A (10)indelpus03(6)kworld(4)kay(3)com(0)'
| extend Message = extract(@'\[(.+?)\]', 1, m)
推荐阅读
- php - 在表单中,我可以使用会话 cookie 作为 CSRF 令牌吗?
- intellij-idea - 由于 IntelliJ 检查配置文件,Java 项目的副本失败
- json - 尝试验证空手道中的响应数据
- python-3.x - 在本地时区 Python 中将字符串转换为日期时间
- javascript - 如何使用 API 连接到不同的网站?
- visual-studio-code - VS Code Live Server 扩展不工作端口 6566
- exception - 如何使用 jdbcitemwriter 在春季批处理写入器步骤中处理 emptyresultdataaccessexception 异常
- json - Futubuilder 快照.hasData 返回 false
- powershell - 将powershell的OrderedDictionary的所有值转换为字符串行并打印到日志文件
- android - 为什么我的私人应用程序没有安装在专用设备配置文件中?