extract()

Hämta en matchning för ett reguljärt uttryck från en källsträng.

Du kan också konvertera den extraherade delsträngen till den angivna typen.

Syntax

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

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
Regex string ✔️ Ett reguljärt uttryck.
captureGroup int ✔️ Avbildningsgruppen som ska extraheras. 0 står för hela matchningen, 1 för det värde som matchas av det första '('parentes')' i det reguljära uttrycket och 2 eller fler för efterföljande parenteser.
Källkod string ✔️ Strängen som ska sökas.
typeLiteral string Om detta anges konverteras den extraherade delsträngen till den här typen. Till exempel typeof(long).

Returer

Om regex hittar en matchning i källan: delsträngen som matchas mot den angivna capture-gruppen captureGroup, kan du konvertera till typeLiteral.

Om det inte finns någon matchning eller om typkonverteringen misslyckas: null.

Exempel

Exempelsträngen Trace söks efter en definition för Duration. Matchningen konverteras till realoch multipliceras sedan med en tidskonstant (1s) så att den Duration är av typen timespan. I det här exemplet är det lika med 123,45 sekunder:

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

Det här exemplet motsvarar substring(Text, 2, 4):

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