Azure Ошибка синтаксиса Log Analytics для Regex - PullRequest
0 голосов
/ 20 марта 2020

Я пишу анализатор 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. У меня есть следующее регулярное выражение, которое c его действительное:

(? <= [) (. *?) (? =]) </p>

Однако, когда я проверяю это на KQL, это не удается, он сказал синтаксическая ошибка. Пожалуйста, дайте мне знать, если у кого-нибудь есть решение. То же самое происходит с Regex для доменного имени, et c

1 Ответ

0 голосов
/ 21 марта 2020

Вот два метода:
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)
...