extract_all()

Obtient toutes les correspondances d’une expression régulière à partir d’une chaîne source. Si vous le souhaitez, récupérez un sous-ensemble de groupes correspondants.

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

Alias dépréciés : extractall()

Syntax

extract_all(Regex, [captureGroups,] Source)

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
Regex string ✔️ Expression régulière contenant entre un et 16 groupes de capture.
captureGroups dynamic Tableau qui indique les groupes de capture à extraire. Les valeurs valides sont comprises entre 1 et le nombre de groupes de capture dans l’expression régulière. Les groupes de capture nommés sont également autorisés. Consultez les exemples.
source string ✔️ Chaîne à rechercher.

Retours

  • Si regex trouve une correspondance dans la source : retourne un tableau dynamique, y compris toutes les correspondances avec les groupes de capture indiqués captureGroups, ou tous les groupes de capture dans le regex.
  • Si le nombre de captureGroups est égal à 1 : le tableau retourné a une seule dimension de valeurs correspondantes.
  • Si le nombre de captureGroups est supérieur à 1 : le tableau retourné est une collection à deux dimensions de correspondances à valeurs multiples par sélection captureGroups , ou tous les groupes de capture présents dans le regex si captureGroups est omis .
  • S’il n’y a pas de correspondance : null.

Exemples

Extraire un groupe de capture unique

La requête suivante retourne une représentation hexadécimal (deux chiffres hexadécimaux) du GUID.

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

Sortie

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

Extraire plusieurs groupes de capture

La requête suivante utilise une expression régulière avec trois groupes de capture pour fractionner chaque partie du GUID en première lettre, dernière lettre et tout ce qui se trouve au milieu.

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

Sortie

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

Extraire un sous-ensemble de groupes de capture

La requête suivante sélectionne un sous-ensemble de groupes de capture.

L’expression régulière correspond à la première lettre, à la dernière lettre et à tout le reste.

Le paramètre captureGroups est utilisé pour sélectionner uniquement la première et la dernière partie.

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

Sortie

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

Utilisation de groupes de capture nommés

Les captureGroups de la requête suivante utilisent à la fois des index de groupe de capture et des références de groupe de capture nommés pour extraire les valeurs correspondantes.

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) 

Sortie

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