KQL/Kusto如何提取括号()内的目标字符串内容
KQL提取英文半角括号内字符串实现方案
针对固定格式的文本,优先用内置parse算子实现,性能优于正则匹配,操作最简单。
针对提供的示例数据的实现代码
// 构造测试数据集 datatable(RawText:string) [ "123 (SuperLongText) - Repetitive Suffix", "12345 (SuperLongText) - Repetitive Suffix", "3213 (ShortText) - Repetitive Suffix" ] // 按格式匹配提取括号内内容 | extend TargetContent = parse(RawText, "(*)", TargetContent)
运行后提取结果:
- 第一行提取值:
SuperLongText - 第二行提取值:
SuperLongText - 第三行提取值:
ShortText
其他场景适配
- 若文本存在多组连续半角括号、需要提取多段内容,直接调整
parse的匹配模式即可:比如提取两组括号内容的写法为parse(字段名, "(*)(*)", 第一个括号内容, 第二个括号内容) - 若文本格式不固定、括号位置无统一规律,可使用正则提取函数
extract实现,通用写法如下:
| extend TargetContent = extract(@"\((.*?)\)", 1, RawText)
语法说明:参数
1代表取正则表达式中第一个捕获组的内容,最终返回结果不会包含括号本身。
内容的提问来源于stack exchange,提问作者D P
相关产品推荐
相关产品推荐

