extract()
從來源字串取得正則表達式的相符專案。
或者,將擷取的子字串轉換成指定的類型。
語法
extract(
,
)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
regex | string |
✔️ | 正 則表達式。 |
captureGroup | int |
✔️ | 要擷取的擷取群組。 0 代表整個比對,1 代表正則表達式中第一個 '('括弧')' 所比對的值,2 或更多代表後續括弧。 |
source | string |
✔️ | 要搜尋的字串。 |
typeLiteral | string |
若提供了此數值,擷取的 substring 將會轉換為此型別。 例如: typeof(long) 。 |
傳回
如果 regex 在來源中尋找相符專案:與指定的擷取群組 captureGroup 相符的子字串,則選擇性地轉換成 typeLiteral。
如果沒有相符專案,或類型轉換失敗: null
。
範例
從 datetime 字串擷取月份
下列查詢會從字串 Dates
擷取月份,並傳回具有日期字串和月份的數據表。
let Dates = datatable(DateString: string)
[
"15-12-2024",
"21-07-2023",
"10-03-2022"
];
Dates
| extend Month = extract(@"-(\d{2})-", 1, DateString, typeof(int))
| project DateString, Month
輸出
DateString | 月 |
---|---|
15-12-2024 | 12 |
21-07-2023 | 7 |
10-03-2022 | 3 |
從字串擷取用戶名稱
下列範例會從字串傳回用戶名稱。 正則表達式 ([^,]+)
會比對下列文字“User: ” 至下一個逗號,有效地擷取用戶名稱。
let Text = "User: JohnDoe, Email: johndoe@example.com, Age: 29";
| print UserName = extract("User: ([^,]+)", 1, Text)
輸出
UserName |
---|
JohnDoe |