extract_all()

Haal alle overeenkomsten voor een reguliere expressie op uit een brontekenreeks. Haal desgewenst een subset van overeenkomende groepen op.

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

Afgeschafte aliassen: extractall()

Syntax

extract_all(Regex, [captureGroups,] Bron)

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
Regex string ✔️ Een reguliere expressie met tussen één en 16 vastleggroepen.
captureGroups dynamic Een matrix die de vastleggroepen aangeeft die moeten worden geëxtraheerd. Geldige waarden zijn van 1 tot het aantal vastleggende groepen in de reguliere expressie. Benoemde opnamegroepen zijn ook toegestaan. Zie voorbeelden.
bron string ✔️ De tekenreeks die moet worden gezocht.

Retouren

  • Als regex een overeenkomst in de bron vindt: retourneert een dynamische matrix, inclusief alle overeenkomsten met de aangegeven capturegroepen captureGroups, of alle groepen die in de regex worden vastgelegd.
  • Als het aantal captureGroups 1 is: de geretourneerde matrix heeft één dimensie van overeenkomende waarden.
  • Als het aantal captureGroups groter is dan 1: de geretourneerde matrix is een tweedimensionale verzameling overeenkomsten met meerdere waarden per captureGroups-selectie , of alle opnamegroepen die aanwezig zijn in de regex als captureGroups wordt weggelaten.
  • Als er geen overeenkomst is: null.

Voorbeelden

Eén opnamegroep extraheren

De volgende query retourneert hex-byteweergave (twee hex-cijfers) van de GUID.

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

Uitvoer

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

Verschillende opnamegroepen extraheren

De volgende query maakt gebruik van een reguliere expressie met drie vastleggende groepen om elk GUID-onderdeel te splitsen in de eerste letter, laatste letter en wat zich in het midden bevindt.

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

Uitvoer

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

Een subset van opnamegroepen extraheren

Met de volgende query wordt een subset van het vastleggen van groepen geselecteerd.

De reguliere expressie komt overeen met de eerste letter, laatste letter en de rest.

De parameter captureGroups wordt gebruikt om alleen het eerste en het laatste deel te selecteren.

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

Uitvoer

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

Benoemde opnamegroepen gebruiken

De captureGroups in de volgende query maakt gebruik van zowel indexen voor vastleggen van groepen als verwijzingen naar benoemde capture-groepen om overeenkomende waarden op te halen.

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) 

Uitvoer

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