Partage via


extract_all()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Obtenir toutes les correspondances pour 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éconseillés : extractall()

Syntaxe

extract_all(regex, [captureGroups,] source)

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise 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 incluant toutes les correspondances par rapport aux groupes de capture indiqués, ou tous les groupes de capture dans le regex.
  • Si le nombre de captureGroups est égal à 1 : le tableau retourné a une dimension unique de valeurs correspondantes .
  • Si le nombre de captureGroups est supérieur à 1 : le tableau retourné est une collection à deux dimensions de valeurs multiples correspond à la sélection des groupes de captures, ou tous les groupes de capture présents dans la règle 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 la 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 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 captures

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 à tous les autres.

Le paramètre captureGroups est utilisé pour sélectionner uniquement les premières et les dernières parties.

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 les index de groupe de capture et les références de groupe de capture nommées 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"]]