extract()

Obtener una coincidencia para una expresión regular a partir de una cadena de origen.

Opcionalmente, convierte la subcadena extraída al tipo indicado.

Sintaxis

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

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
regex string ✔️ Expresión regular.
captureGroup int ✔️ Grupo de captura que se va a extraer. 0 representa la coincidencia completa, 1 para el valor coincidente con el primer '('paréntesis')' en la expresión regular y 2 o más para paréntesis posteriores.
source string ✔️ Cadena en la que se va a buscar.
typeLiteral string Si se proporciona, la subcadena extraída se convierte a este tipo. Por ejemplo, typeof(long).

Devuelve

Si regex encuentra una coincidencia en source: la subcadena coincidía con el grupo de captura indicado, captureGroup, opcionalmente convertido a typeLiteral.

Si no hay ninguna coincidencia, o se produce un error en la conversión del tipo: null.

Ejemplos

En la cadena de ejemplo Trace se busca una definición para Duration. La coincidencia se convierte en real y se multiplica por una constante de tiempo (1s) para que Duration sea de tipo timespan. En este ejemplo, es igual a 123,45 segundos:

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

En este ejemplo, es equivalente a substring(Text, 2, 4):

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