extract()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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(
regex,
captureGroup,
source [,
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)