extract()

Ottenere una corrispondenza per un'espressione regolare da una stringa di origine.

Facoltativamente, converte la sottostringa estratta nel tipo indicato.

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
Regex string ✔️ Espressione regolare.
captureGroup int ✔️ Gruppo di acquisizione da estrarre. 0 indica l'intera corrispondenza, 1 per il valore corrispondente al primo '('parentesi')' nell'espressione regolare e 2 o più per le parentesi successive.
source string ✔️ Stringa in cui effettuare la ricerca.
typeLiteral string Se specificato, la sottostringa estratta viene convertita nel tipo. Ad esempio: typeof(long).

Restituisce

Se regex trova una corrispondenza nell'origine: la sottostringa corrispondente al gruppo capture capturegroup indicato, facoltativamente convertita in typeLiteral.

Se non esiste alcuna corrispondenza o la conversione del tipo non riesce: null.

Esempi

Nella stringa di esempio Trace viene cercata una definizione per Duration. La corrispondenza viene convertita in real e quindi moltiplicata per una costante di tempo (1s) in modo che Duration sia di tipo timespan. In questo esempio è uguale a 123,45 secondi:

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

Questo esempio è equivalente a substring(Text, 2, 4):

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