extract()

Získá shodu regulárního výrazu ze zdrojového řetězce.

Volitelně převeďte extrahovaný podřetěžce na uvedený typ.

Syntax

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

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
Regex string ✔️ Regulární výraz.
captureGroup int ✔️ Skupina zachycení, která se má extrahovat. 0 označuje celou shodu, 1 hodnotu odpovídající první závorce ('závorky')' v regulárním výrazu a 2 nebo více pro následné závorky.
Zdroj string ✔️ Řetězec, který chcete vyhledat.
TypeLiteral string Pokud je zadaný, extrahovaný podřetěžce je převeden na tento typ. Například, typeof(long).

Návraty

Pokud regulární výraz najde shodu ve zdroji: podřetěc odpovídající zadané skupině capture captureGroup, volitelně převedený na typeLiteral.

Pokud neexistuje žádná shoda nebo se převod typu nezdaří: null.

Příklady

V ukázkovém řetězci Trace se vyhledá definice pro Duration. Shoda se převede na reala pak se vynásobí časovou konstantou (1s) tak, aby Duration byla typu timespan. V tomto příkladu je to 123,45 sekundy:

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

Tento příklad odpovídá substring(Text, 2, 4):

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