Partage via


extract()

Obtenir une correspondance pour une expression régulière à partir d’une chaîne source.

Éventuellement, convertit la sous-chaîne extraite dans le type indiqué.

Syntaxe

extract(regex, captureGroup, source [, typeLiteral])

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
regex string ✔️ Expression régulière.
captureGroup int ✔️ Groupe de capture à extraire. 0 correspond à l’intégralité de la correspondance, 1 pour la valeur mise en correspondance par le premier ' ('parenthèse')' dans l’expression régulière, et 2 ou plus pour les parenthèses suivantes.
source string ✔️ Chaîne à rechercher.
typeLiteral string Si elle est fournie, la sous-chaîne extraite est convertie dans ce type. Par exemple : typeof(long).

Retours

Si regex trouve une correspondance dans source : sous-chaîne correspondant au groupe de capture captureGroup indiqué, éventuellement convertie en typeLiteral.

Si aucune correspondance n’est trouvée ou si la conversion de type échoue : null.

Exemples

Une définition de Duration est recherchée dans l’exemple de chaîne Trace. La correspondance est convertie en real, puis multipliée par une constante de temps (1s) pour que Duration soit de type timespan. Dans cet exemple, il est égal à 123,45 secondes :

T
| extend Trace="A=1, B=2, Duration=123.45, ..."
| extend Duration = extract("Duration=([0-9.]+)", 1, Trace, typeof(real)) * time(1s) 

Cet exemple est équivalent à substring(Text, 2, 4):

extract("^.{2,2}(.{4,4})", 1, Text)