extract()
从源字符串中获取正则表达式的匹配项。
(可选)将提取的子字符串转换为指明的类型。
语法
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)