你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
extract()
从源字符串中获取正则表达式的匹配项。
(可选)将提取的子字符串转换为指明的类型。
语法
extract(
regex,
captureGroup,
source [,
typeLiteral])
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
regex | string |
✔️ | 一个正则表达式。 |
captureGroup | int |
✔️ | 要提取的捕获组。 0 代表整个匹配项,1 代表正则表达式中第一个括号 () 匹配的值,并用 2 及以上数字代表后续括号。 |
source | string |
✔️ | 要搜索的字符串。 |
typeLiteral | string |
(如果支持)提取的子字符串将转换成此类型。 例如 typeof(long) 。 |
返回
如果 regex 在 source 中找到了匹配项:与指定捕获组 captureGroup 匹配的子字符串可转换为 typeLiteral(可选) 。
如果没有匹配项,或类型转换失败:null
。
示例
从日期/时间字符串中提取月份
以下查询从字符串 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 |