Поделиться через


extract();

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Определяет соответствие для регулярного выражения из исходной строки.

При необходимости преобразуйте извлеченную подстроку в указанный тип.

Синтаксис

extract(regex, captureGroup, source [, typeLiteral])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
regex string ✔️ регулярное выражение.
captureGroup int ✔️ Извлекаемая группа захвата. 0 обозначает все совпадение, 1 для значения, соответствующего первому "("круглые скобки") в регулярном выражении, и 2 или более для последующих скобок.
source string ✔️ Строка для поиска.
typeLiteral string Если указан, то извлеченная подстрока преобразуется в этот тип. Например, typeof(long).

Возвраты

Если regex находит соответствие в source, возвращается подстрока, сопоставленная с указанной группой записи captureGroup, при необходимости преобразованной в тип typeLiteral.

Если соответствия нет или не удается выполнить преобразование типа, возвращается null.

Примеры

В примере строки Trace производится поиск определения Duration. Соответствие преобразуется в real, а затем умножается на константу времени (1s), чтобы для Duration был задан тип timespan. В этом примере это равно 123,45 секунды:

T
| extend Trace="A=1, B=2, Duration=123.45, ..."
| extend Duration = extract("Duration=([0-9.]+)", 1, Trace, typeof(real)) * time(1s) 

Этот пример аналогичен substring(Text, 2, 4).

extract("^.{2,2}(.{4,4})", 1, Text)