extract()

從來源字串取得規則運算式的相符項目。

(選擇性) 將所擷取的子字串轉換為指定的類型。

語法

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

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
RegEx string ✔️ 正則表達式
captureGroup int ✔️ 要擷取的擷取群組。 0 代表整個比對,1 代表正則表達式中第一個 『 (』括弧『) 』 比對的值,而後續括弧則為 2 或更多。
source string ✔️ 要搜尋的字串。
typeLiteral string 若提供了此數值,擷取的 substring 將會轉換為此型別。 例如: typeof(long)

傳回

如果 regexsource 中找到相符項目︰針對指定的擷取群組 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)