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])

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
Regex string ✔️ Expression régulière.
captureGroup int ✔️ Groupe de capture à extraire. 0 représente la correspondance entière, 1 pour la valeur mise en correspondance par la première « 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, elle est égale à 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)