Udostępnij za pośrednictwem


extract_all()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Pobierz wszystkie dopasowania dla wyrażenia regularnego z ciągu źródłowego. Opcjonalnie pobierz podzbiór pasujących grup.

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

Przestarzałe aliasy: extractall()

Składnia

extract_all(źródło regex [captureGroups,] ,)

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
regex string ✔️ Wyrażenie regularne zawierające od jednego do 16 grup przechwytywania.
captureGroups dynamic Tablica wskazująca grupy przechwytywania do wyodrębnienia. Prawidłowe wartości to od 1 do liczby przechwytywania grup w wyrażeniu regularnym. Nazwane grupy przechwytywania są również dozwolone. Zobacz przykłady.
source string ✔️ Ciąg do wyszukania.

Zwraca

  • Jeśli wyrażenie regularne znajdzie dopasowanie w źródle: Zwraca tablicę dynamiczną zawierającą wszystkie dopasowania względem wskazanych grup przechwytywania grup przechwytywania lub wszystkich grup przechwytywania w regex.
  • Jeśli liczba grup przechwytywania wynosi 1: zwracana tablica ma jeden wymiar dopasowanych wartości.
  • Jeśli liczba grup przechwytywania jest większa niż 1: Zwracana tablica jest dwuwymiarową kolekcją dopasowań wielowartościowych dla zaznaczenia grup przechwytywania lub wszystkich grup przechwytywania znajdujących się w regex, jeśli pominięto element captureGroups.
  • Jeśli nie ma dopasowania: null.

Przykłady

Wyodrębnianie pojedynczej grupy przechwytywania

Poniższe zapytanie zwraca reprezentację szesnastkowej (dwie cyfry szesnastkowej) identyfikatora GUID.

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

Wyjście

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

Wyodrębnianie kilku grup przechwytywania

Poniższe zapytanie używa wyrażenia regularnego z trzema grupami przechwytywania, aby podzielić każdą część identyfikatora GUID na pierwszą literę, ostatnią literę i cokolwiek znajduje się w środku.

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

Wyjście

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

Wyodrębnianie podzbioru grup przechwytywania

Poniższe zapytanie wybiera podzestaw przechwytywania grup.

Wyrażenie regularne jest zgodne z pierwszą literą, ostatnią literą i resztą.

Parametr captureGroups służy do wybierania tylko pierwszych i ostatnich części.

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

Wyjście

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

Używanie nazwanych grup przechwytywania

Grupa przechwytywania w poniższym zapytaniu używa zarówno indeksów grup przechwytywania, jak i nazwanych odwołań do grup przechwytywania w celu pobrania pasujących wartości.

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) 

Wyjście

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