extract_all()
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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"]] |