extract_all()

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Ruft alle Übereinstimmungen für einen regulären Ausdruck aus einer Quellzeichenfolge ab. Rufen Sie optional eine Teilmenge der ü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 Type Erforderlich Beschreibung
regex string ✔️ Ein regulärer Ausdruck , der zwischen einer und 16 Erfassungsgruppen enthält.
captureGroups dynamic Ein Array, das die zu extrahierenden Aufnahmegruppen 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.
Quelle string ✔️ Die zu durchsuchende Zeichenfolge.

Gibt zurück

  • Wenn regex eine Übereinstimmung in der Quelle findet: Gibt dynamisches Array einschließlich aller Übereinstimmungen für die angegebenen Erfassungsgruppen captureGroups oder alle Aufnahmegruppen im regex zurück.
  • Wenn die Anzahl der captureGroups 1 lautet: Das zurückgegebene Array weist eine einzelne Dimension übereinstimmener Werte auf.
  • Wenn die Anzahl der captureGroups mehr als 1 beträgt: Das zurückgegebene Array ist eine zweidimensionale Auflistung von mehrwertigen Übereinstimmungen pro captureGroups-Auswahl oder alle Erfassungsgruppen, die im regex vorhanden sind, wenn captureGroups nicht angegeben wird.
  • Wenn keine Übereinstimmung vorhanden ist: null.

Beispiele

Extrahieren einer einzelnen Erfassungsgruppe

Die folgende Abfrage gibt hex-byte-Darstellung (zwei Hexadezien) der GUID zurück.

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

Output

Kennung 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 Aufnahmegruppen verwendet, um jeden GUID-Teil in den ersten Buchstaben, den letzten Buchstaben und alles, was sich in der Mitte befindet, aufzuteilen.

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

Output

Kennung 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 parameter captureGroups wird verwendet, um nur die ersten und die letzten Teile auszuwählen.

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

Output

Kennung 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 Aufnahmegruppenindizes als auch benannte Aufnahmegruppenverweise, 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) 

Output

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