extract()

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

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

extract("x=([0-9.]+)", 1, "hello x=45.6|wo") == "45.6"

語法

extract(RegEx ,captureGroup ,來源[ , typeLiteral])

引數

  • regex規則運算式
  • captureGroup:指出要擷取之擷取群組的正 int 常數。 0 代表整個相符項目、1 代表規則運算式中第一個 '('括號')' 所相符的值,2 或以上的數字代表後續的括號。
  • 來源string 要搜尋的。
  • typeLiteral:選擇性的類型常值 (例如 typeof(long))。 如果提供,所擷取的子字串會轉換為此類型。

傳回

如果 RegEx來源 中找到相符的子字串:符合指定之 capture 群組 captureGroup 的子字串(選擇性地轉換為 typeLiteral)。

如果沒有相符項目或類型轉換失敗︰ null

範例

搜尋範例字串 Trace 以取得 Duration 的定義。 相符項目會轉換為 real,然後乘以時間常數 (1s),讓 Duration 的類型變為 timespan。 在此範例中,結果等於 123.45 秒︰

...
| 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)