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

如何在Sentinel中使用正则按两种不同分隔符拆分字段值

解决方案

你之前的写法失效的核心原因:

  • split() 函数仅支持固定字符串作为单一分隔符,不识别正则语法,因此第一种传入'-|$60'的写法会被识别为匹配完整的-|$60字符串,无法完成拆分。
  • 第二种写法中,第一次split()返回的是动态数组类型,直接传入第二个split()作为拆分对象,参数类型不匹配,因此执行不生效。

方案1:统一替换分隔符后拆分(推荐,性能最优)

先将所有$60分隔符替换为-,再用split统一拆分,逻辑简单适配绝大多数场景:

| extend FieldName = replace_string(FieldName, '$60', '-')
| extend FieldNameSplit = split(FieldName, '-')

如果需要保留原始字段,也可以新建临时字段做替换:

| extend TempField = replace_string(FieldName, '$60', '-')
| extend FieldNameSplit = split(TempField, '-')
| project-away TempField // 用完删除临时字段即可

方案2:使用正则拆分函数

如果不想修改原始内容,可以用KQL原生支持正则的split_regex()函数,注意正则中$是特殊字符,需要转义:

// 使用@前缀声明原生字符串,避免转义符重复书写
| extend FieldNameSplit = split_regex(FieldName, @'-|\$60')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:57:01