extract();
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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)