extract()

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

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

Синтаксис

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

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

Параметры

Имя Тип Обязательно Описание
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)