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

Splunk中搜索键被双引号包裹的正则表达式求助

Splunk查询修正方案

问题分析

你要提取的日志是JSON格式片段,之前的rex语句存在两个核心问题:

  1. 第一个正则未考虑字段可能出现在行尾(无后续逗号)的情况,导致部分日志匹配失败
  2. 第二个正则的捕获组语法错误,正确格式应为(?<字段名>匹配规则),而非把字段名放在括号外

推荐方案:使用spath解析JSON(更可靠)

Splunk自带spath命令可直接解析JSON字段,无需编写复杂正则,适配各种JSON格式场景:

| spath input=_raw extract=requestUrlLength,requestBodyLength
| stats count by requestUrlLength,requestBodyLength
| sort -count

该命令会自动从_raw字段中提取指定的JSON键值对,不管字段在开头、中间还是结尾都能正常捕获。

备选方案:修正rex正则表达式

如果必须使用正则,可调整为以下语句(兼容字段在行尾无逗号的场景):

| rex field=_raw "\"requestUrlLength\":\s*(?<requestUrlLength>\d+)(?:,|$)"
| rex field=_raw "\"requestBodyLength\":\s*(?<requestBodyLength>\d+)(?:,|$)"
| stats count by requestUrlLength,requestBodyLength
| sort -count
  • \s*:匹配任意数量的空格(包括0个),避免因空格数量不一致导致匹配失败
  • (?:,|$):非捕获组,匹配逗号或行尾,确保字段在末尾时也能被捕获

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:25:56