Sdílet prostřednictvím


extract_all()

Získá všechny shody regulárního výrazu ze zdrojového řetězce. Volitelně můžete načíst podmnožinu odpovídajících skupin.

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

Zastaralé aliasy: extractall()

Syntaxe

extract_all(zdroj regex [captureGroups,] ,)

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
Regex string ✔️ Regulární výraz obsahující jednu až 16 skupin zachycení.
captureGroups dynamic Pole označující skupiny zachycení, které se mají extrahovat. Platné hodnoty jsou od 1 do počtu zachycených skupin v regulárním výrazu. Pojmenované skupiny zachycení jsou také povolené. Podívejte se na příklady.
source string ✔️ Řetězec, který se má prohledávat.

Návraty

  • Pokud regulární výraz najde shodu ve zdroji: Vrátí dynamické pole včetně všech shod oproti uvedeným skupinám zachycení skupin captureGroups nebo všech zachytávání skupin v regulárním výrazu.
  • Pokud je počet captureGroups 1: Vrácená matice má jednu dimenzi odpovídajících hodnot.
  • Pokud je počet captureGroups větší než 1: Vrácená matice je dvourozměrná kolekce s více hodnotami pro výběr skupiny captureGroups nebo všechny skupiny zachycení, které jsou přítomné v regulárním výrazu, pokud je funkce captureGroups vynechána.
  • Pokud neexistuje žádná shoda: null.

Příklady

Extrahování jedné skupiny zachycení

Následující dotaz vrátí šestnáctkové vyjádření (dvě šestnáctkové číslice) identifikátoru GUID.

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

Výstup

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

Extrahování několika skupin zachycení

Následující dotaz používá regulární výraz se třemi zachytáváním skupin k rozdělení každé části GUID na první písmeno, poslední písmeno a cokoli je uprostřed.

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

Výstup

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

Extrahování podmnožina skupin zachycení

Následující dotaz vybere podmnožinu zachytávání skupin.

Regulární výraz odpovídá prvnímu písmenu, poslednímu písmenu a všem ostatním.

Parametr captureGroups slouží k výběru pouze první a poslední části.

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

Výstup

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

Použití pojmenovaných skupin zachycení

Skupiny captureGroup v následujícím dotazu používají indexy skupiny zachycení a pojmenované odkazy na skupinu zachycení k načtení odpovídajících hodnot.

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) 

Výstup

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