extract()

适用于:✅Azure 数据资源管理器Azure MonitorMicrosoft Sentinel

从源字符串中获取正则表达式的匹配项。

(可选)将提取的子字符串转换为指明的类型。

语法

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

详细了解语法约定

参数

客户 类型​​ 必需 说明
regex string ✔️ 一个正则表达式
captureGroup int ✔️ 要提取的捕获组。 0 代表整个匹配项,1 代表正则表达式中第一个括号 () 匹配的值,并用 2 及以上数字代表后续括号。
source string ✔️ 要搜索的字符串。
typeLiteral string (如果支持)提取的子字符串将转换成此类型。 例如 typeof(long)

返回

如果 regex 在 source 中找到了匹配项:与指定捕获组 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)