extract()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
從來源字串取得正則表達式的相符專案。
或者,將擷取的子字串轉換成指定的類型。
語法
extract(
regex captureGroup,
來源 [,
typeLiteral],
)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
regex | string |
✔️ | 正 則表達式。 |
captureGroup | int |
✔️ | 要擷取的擷取群組。 0 代表整個比對,1 代表正則表達式中第一個 '('括弧')' 所比對的值,2 或更多代表後續括弧。 |
source | string |
✔️ | 要搜尋的字串。 |
typeLiteral | string |
若提供了此數值,擷取的 substring 將會轉換為此型別。 例如: typeof(long) 。 |
傳回
如果 regex 在來源中尋找相符專案:與指定的擷取群組 captureGroup 相符的子字串,則選擇性地轉換成 typeLiteral。
如果沒有相符專案,或類型轉換失敗: null
。
範例
搜尋範例字串Trace
的定義。Duration
比對會轉換成 real
,然後將它乘以時間常數 (1s
), Duration
使 類型為 timespan
。 在此範例中,它等於123.45秒:
T
| extend Trace="A=1, B=2, Duration=123.45, ..."
| extend Duration = extract("Duration=([0-9.]+)", 1, Trace, typeof(real)) * time(1s)
這個範例相當於 substring(Text, 2, 4)
:
extract("^.{2,2}(.{4,4})", 1, Text)