extract()
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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 | Type | Obligatorio | Descripción |
---|---|---|---|
regex | string |
✔️ | una expresión regular. |
captureGroup | int |
✔️ | Grupo de captura que se va a extraer. 0 significa 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) . |
Devoluciones
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)