Megosztás a következőn keresztül:


extract_all()

Egy reguláris kifejezés összes egyezésének lekérése egy forrássztringből. Igény szerint lekérheti az egyező csoportok egy részhalmazát.

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

Elavult aliasok: extractall()

Syntax

extract_all(Regex, [captureGroups,] Forrás)

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Regex string ✔️ Egy reguláris kifejezés , amely egy és 16 rögzítési csoportot tartalmaz.
captureGroups dynamic Egy tömb, amely a kinyerni kívánt rögzítési csoportokat jelzi. Az érvényes értékek a reguláris kifejezésben szereplő rögzítési csoportok számától 1-et tartalmaznak. A nevesített rögzítési csoportok is engedélyezettek. Tekintse meg a példákat.
Forrás string ✔️ A keresendő sztring.

Válaszok

  • Ha a regex talál egyezést a forrásban: Dinamikus tömböt ad vissza, beleértve a megadott rögzítési csoportok captureGroups vagy a regex összes rögzítési csoportjának összes egyezését.
  • Ha a captureGroups száma 1: A visszaadott tömb egyetlen dimenzióval rendelkezik az egyező értékekből.
  • Ha a captureGroups száma meghaladja az 1-et: A visszaadott tömb többértékű egyezések kétdimenziós gyűjteménye captureGroups-kijelölésenként , vagy a regexben található összes rögzítési csoport, ha a captureGroups nincs megadva.
  • Ha nincs egyezés: null.

Példák

Egyetlen rögzítési csoport kibontása

A következő lekérdezés a GUID hexadecimális bájtos ábrázolását (két hexadecimális számjegyét) adja vissza.

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

Kimenet

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

Több rögzítési csoport kibontása

A következő lekérdezés egy reguláris kifejezést használ három rögzítési csoporttal, hogy az egyes GUID-részeket első betűre, utolsó betűre és bármire ossza fel, ami középen van.

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

Kimenet

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

Rögzítési csoportok részhalmazának kinyerése

Az alábbi lekérdezés a csoportok rögzítésének egy részhalmazát választja ki.

A reguláris kifejezés megfelel az első betűnek, az utolsó betűnek és az összes többinek.

A captureGroups paraméter csak az első és az utolsó rész kiválasztására szolgál.

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

Kimenet

ID (Azonosító) guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]]

Elnevezett rögzítési csoportok használata

A következő lekérdezésben a captureGroups a rögzítési csoport indexeit és a nevesített rögzítési csoporthivatkozásokat is felhasználja az egyező értékek lekéréséhez.

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) 

Kimenet

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