extract_all()
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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"]] |