Share via


extract_all()

Abrufen aller Übereinstimmungen für einen regulären Ausdruck aus einer Quellzeichenfolge. Rufen Sie optional eine Teilmenge übereinstimmenden Gruppen ab.

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

Veraltete Aliase: extractall()

Syntax

extract_all(Regex, [captureGroups,] Quelle)

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
regex string ✔️ Ein regulärer Ausdruck , der zwischen einer und 16 Erfassungsgruppen enthält.
captureGroups dynamic Ein Array, das die zu extrahierenden Erfassungsgruppen angibt. Gültige Werte liegen zwischen 1 und der Anzahl der Erfassungsgruppen im regulären Ausdruck. Benannte Erfassungsgruppen sind ebenfalls zulässig. Weitere Informationen finden Sie unter Beispiele.
source string ✔️ Die zu durchsuchende Zeichenfolge.

Gibt zurück

  • Wenn regex eine Übereinstimmung in der Quelle findet: Gibt ein dynamisches Array zurück, das alle Übereinstimmungen mit den angegebenen Erfassungsgruppen captureGroups oder alle Erfassungsgruppen im Regex enthält.
  • Wenn die Anzahl von captureGroups 1 ist: Das zurückgegebene Array verfügt über eine einzelne Dimension von übereinstimmenden Werten.
  • Wenn die Anzahl von captureGroups mehr als 1 ist: Das zurückgegebene Array ist eine zweidimensionale Auflistung von mehrwertigen Übereinstimmungen pro captureGroups-Auswahl oder alle erfassungsgruppen, die im regex vorhanden sind, wenn captureGroups ausgelassen wird.
  • Wenn keine Übereinstimmung vorhanden ist: null.

Beispiele

Extrahieren einer einzelnen Erfassungsgruppe

Die folgende Abfrage gibt eine Hex-Byte-Darstellung (zwei Hex-Ziffern) der GUID zurück.

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

Ausgabe

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

Extrahieren mehrerer Erfassungsgruppen

In der folgenden Abfrage wird ein regulärer Ausdruck mit drei Erfassungsgruppen verwendet, um jeden GUID-Teil in den ersten Buchstaben, den letzten Buchstaben und das, was sich in der Mitte befindet, aufzuteilen.

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

Ausgabe

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

Extrahieren einer Teilmenge von Erfassungsgruppen

Die folgende Abfrage wählt eine Teilmenge der Erfassungsgruppen aus.

Der reguläre Ausdruck entspricht dem ersten Buchstaben, dem letzten Buchstaben und dem rest.

Der captureGroups-Parameter wird verwendet, um nur den ersten und den letzten Teil auszuwählen.

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

Ausgabe

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

Verwenden von benannten Erfassungsgruppen

Die captureGroups in der folgenden Abfrage verwendet sowohl Aufzeichnungsgruppenindizes als auch Verweise auf benannte Erfassungsgruppen, um übereinstimmende Werte abzurufen.

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) 

Ausgabe

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