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


extract_all()

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

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

print extract_all(@"(\d+)", "a set of numbers: 123, 567 and 789") // results with the dynamic array ["123", "567", "789"]

Устаревшие псевдонимы: extractall()

Синтаксис

extract_all(источник regex [captureGroups,] ,)

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

Параметры

Имя (название) Type Обязательно Описание
regex string ✔️ Регулярное выражение , содержащее между одной и 16 группами записи.
captureGroups dynamic Массив, указывающий группы захвата для извлечения. Допустимые значения — от 1 до количества записей групп в регулярном выражении. Кроме того, разрешены именованные группы захвата. См. примеры:
source string ✔️ Строка для поиска.

Возвраты

  • Если regex находит совпадение в источнике: возвращает динамический массив, включая все совпадения с указанными группами отслеживания групп отслеживания, или все группы записи в регулярной строке.
  • Если число групп записи равно 1: возвращаемый массив имеет одно измерение сопоставленных значений.
  • Если число групп записи превышает 1: возвращаемый массив представляет собой двухмерную коллекцию многозначных совпадений для каждого выбора captureGroups или все группы захвата, присутствующих в регулярном коде, если сборные группы не отображаются.
  • Если совпадения нет: null

Примеры

Извлечение одной группы захвата

Следующий запрос возвращает шестнадцатеричное представление (две шестнадцатеричные цифры) GUID.

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"([\da-f]{2})", Id) 

Выходные данные

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 ["82","b8","be","2d","df","a7","4b","d1","8f","63","24","ad","26","d3","14","49"]

Извлечение нескольких групп записи

Следующий запрос использует регулярное выражение с тремя группами записи для разделения каждой части GUID на первую букву, последнюю букву и все, что находится в середине.

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", Id)

Выходные данные

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]

Извлечение подмножества групп захвата

Следующий запрос выбирает подмножество записей групп.

Регулярное выражение соответствует первой букве, последней букве и всем остальным.

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

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", dynamic([1,3]), Id) 

Выходные данные

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]]

Использование именованных групп отслеживания

Группы записи в следующем запросе используют индексы групп записи и именованные ссылки на группы захвата для получения совпадающих значений.

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(?P<first>\w)(?P<middle>\w+)(?P<last>\w)", dynamic(['first',2,'last']), Id) 

Выходные данные

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]