extract_all()
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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)
Выходные данные
Идентификатор | 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)
Выходные данные
Идентификатор | 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)
Выходные данные
Идентификатор | 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)
Выходные данные
Идентификатор | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]] |