Sdílet prostřednictvím


extract()

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

Volitelně můžete převést extrahovaný podřetětěr na zadaný typ.

Syntaxe

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

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

Parametry

Název Type Požadováno Popis
Regex string ✔️ Regulární výraz.
captureGroup int ✔️ Skupina zachycení, která se má extrahovat. 0 znamená celou shodu, 1 pro hodnotu odpovídající první závorce ('závorka') v regulárním výrazu a 2 nebo více pro následující závorky.
source string ✔️ Řetězec, který se má prohledávat.
typeLiteral string Pokud je k dispozici, extrahovaný podřetětěr 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ě captureGroup, volitelně převeden na typeLiteral.

Pokud neexistuje žádná shoda nebo převod typu selže: null.

Příklady

Příklad řetězce Trace je vyhledán definici pro Duration. Shoda se převede na real, a pak ji vynásobí časovou konstantou (1s) tak, že Duration je typu timespan. V tomto příkladu se rovná 123,45 sekund:

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 je ekvivalentní substring(Text, 2, 4):

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