extract()

Haal een overeenkomst op voor een reguliere expressie uit een brontekenreeks.

U kunt desgewenst de geëxtraheerde subtekenreeks converteren naar het aangegeven type.

Syntax

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

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
Regex string ✔️ Een reguliere expressie.
captureGroup int ✔️ De opnamegroep die moet worden geëxtraheerd. 0 staat voor de volledige overeenkomst, 1 voor de waarde die overeenkomt met de eerste '('haakje')' in de reguliere expressie en 2 of meer voor volgende haakjes.
bron string ✔️ De tekenreeks die moet worden gezocht.
typeLiteral string Indien opgegeven, wordt de geëxtraheerde subtekenreeks geconverteerd naar dit type. Bijvoorbeeld typeof(long).

Retouren

Als regex een overeenkomst vindt in de bron: de subtekenreeks komt overeen met de aangegeven capture group captureGroup, optioneel geconverteerd naar typeLiteral.

Als er geen overeenkomst is of als de typeconversie mislukt: null.

Voorbeelden

In de voorbeeldtekenreeks Trace wordt gezocht naar een definitie voor Duration. De overeenkomst wordt geconverteerd naar realen vermenigvuldigd met een tijdconstante (1s), dus dat Duration is van het type timespan. In dit voorbeeld is dit gelijk aan 123,45 seconden:

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

Dit voorbeeld is gelijk aan substring(Text, 2, 4):

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