extract()

Obtenha uma correspondência para uma expressão regular a partir de uma cadeia de origem.

Opcionalmente, converta a subcadeia extraída para o tipo indicado.

Syntax

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
regex string ✔️ Uma expressão normal.
captureGroup int ✔️ O grupo de captura a extrair. 0 significa a correspondência completa, 1 para o valor correspondido pelo primeiro "('parênteses')" na expressão regular e 2 ou mais para parênteses subsequentes.
origem string ✔️ A cadeia de carateres a procurar.
typeLiteral string Se for fornecido, a subcadeia extraída é convertida para este tipo. Por exemplo, typeof(long).

Devoluções

Se regex encontrar uma correspondência na origem: a subcadeia correspondeu ao grupo de captura indicado captureGroup, opcionalmente convertido em typeLiteral.

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

Exemplos

A cadeia de Trace exemplo é pesquisada para obter uma definição para Duration. A correspondência é convertida em reale, em seguida, multiplica-a por uma constante de tempo (1s) para que seja Duration 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)