You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kusto查询如何提取字符串第一个方括号内的数字值

结论

优先选择extract()函数实现,是三种方案里最优的选择。

最优方案实现代码

你可以直接在原有查询基础上扩展如下逻辑:

// 原有提取CustomValue的逻辑
| project ID=parse_json(Data).["CustomValue"] 
// 新增extract提取第一个方括号内的数字
| extend target_number = extract(@'\[(\d+)\]', 1, tostring(ID))

方案对比

  • extract():专门为单字段正则提取场景设计,仅需一次正则匹配即可拿到目标值,容错性高,只要第一个方括号内是数字就能正常提取,不受后续内容格式变动影响,性能开销最低。
  • split():需要两次拆分字符串+两次数组下标取值,写法冗余,若输入字符串格式不符合预期(无前置[、无对应闭合])容易出现数组越界报错,容错性差,性能低于extract。
    示例写法参考(不推荐):
    | extend target_number = split(split(tostring(ID), '[')[1], ']')[0]
    
  • parse():适合同一条字符串同时提取多个字段的场景,单字段提取需要额外占位不需要的内容,写法冗余,性能弱于extract。
    示例写法参考(不推荐):
    | parse ID with "[" target_number "]" *
    

内容的提问来源于stack exchange,提问作者SM04

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:06:04