Partilhar via


extract()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Obtenha uma correspondência para uma expressão regular com base em uma cadeia de caracteres de origem.

Opcionalmente converte a subcadeia extraída no tipo indicado.

Sintaxe

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
regex string ✔️ uma expressão regular.
Grupo de captura int ✔️ O grupo de captura a ser extraído. 0 representa a correspondência inteira, 1 para o valor correspondido pelo primeiro '('parêntese')' na expressão regular e 2 ou mais para parênteses subsequentes.
source string ✔️ A cadeia de caracteres a ser pesquisada.
typeLiteral string Se for fornecido, a subcadeia de caracteres extraída será convertida para esse tipo. Por exemplo, typeof(long).

Devoluções

Se regex encontrar uma correspondência em source: a substring correspondente ao grupo de captura captureGroup indicado, convertida, opcionalmente, em typeLiteral.

Se não houver correspondência, ou se a conversão do tipo falhar: null.

Exemplos

A cadeia de caracteres de exemplo Trace é pesquisada em busca de uma definição para Duration. A correspondência é convertida em real e multiplicada por uma constante de tempo (1s) para que Duration seja do tipo timespan. Neste exemplo, é 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) 

Este exemplo é equivalente a substring(Text, 2, 4):

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