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