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

Splunk rex命令提取值失败求助:如何提取JSON中的12345

解决Splunk rex提取JSON特定数值的问题

嘿,我知道你现在在Splunk里用rex命令提取数值时卡壳了——你的查询输出是{"(001) NULL.COUNT(1).NUMBER": "12345"},但当前的rex命令没拿到想要的12345,反而返回了整个JSON内容对吧?

问题出在你写的正则表达式里,那些括号()和点.都是正则中的特殊字符:

  • 括号()在正则里用来定义捕获组,不是字面意义的括号
  • 点.在正则里匹配任意单个字符,不是字面意义的点

所以你需要把这些特殊字符用反斜杠\转义,让正则把它们当成普通字符来匹配。

修正后的rex命令应该是这样的:

| rex field=_transfers "\(001\) NULL\.COUNT\(1\)\.NUMBER\": \"(?<value>.*?)\""

给你拆解下关键修改点:

  • 把(001)改成\(001\),转义括号,让正则识别为字面括号
  • 把NULL.COUNT改成NULL\.COUNT,转义点,匹配字面的点
  • 把(1).NUMBER改成\(1\)\.NUMBER,同样转义括号和点
  • 把.*改成.*?,用非贪婪匹配,避免后续如果有其他引号时匹配范围过大(这个场景下可能不是必须,但能让正则更严谨)

用这个命令之后,value字段就会准确提取出12345啦!你可以直接测试一下,应该就能得到想要的结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:34:47