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

请求生成SiteScope正则表达式:匹配指定HttpStatus与ErrorCode的日志

如何在SiteScope中编写匹配特定日志条件的正则表达式?

针对你需要在SiteScope中触发同时包含"HttpStatus" : 400和"ErrorCode" : "40000"的日志告警需求,我来帮你梳理合适的正则表达式方案:

推荐的正则表达式

考虑到日志中字段的顺序可能不固定,最稳妥的写法是用正向预查确保两个条件同时满足,不管它们在日志里的位置:

针对英文双引号的日志:

/(?=.*"HttpStatus"\s*:\s*400)(?=.*"ErrorCode"\s*:\s*"40000")/

针对你示例中中文双引号的日志:

你提供的示例日志用的是中文引号(“和”),如果实际日志也是这种格式,正则要调整为:

/(?=.*“HttpStatus”\s*:\s*400)(?=.*“ErrorCode”\s*:\s*“40000”)/

正则逻辑解释

  • (?=.*X):正向预查语法,作用是确认字符串中存在X内容,但不会消耗匹配字符,因此可以同时叠加多个预查条件
  • \s*:匹配任意数量的空白字符(空格、制表符等),兼容日志中键值对之间可能存在的空格差异
  • 整个正则的逻辑是:只要日志中同时存在HttpStatus:400和ErrorCode:"40000"这两个键值对,不管先后顺序,都会匹配成功

你之前尝试的问题分析

  1. 第一个写法/“HtHttpStatus” : 400, “ErrorCode” : “40000”

    • 存在拼写错误(HtHttpStatus多了一个t)
    • 要求两个字段必须连续且顺序固定,一旦日志中两个字段中间插入了其他内容,就无法匹配,灵活性太差
  2. 第二个写法/[“HttpStatus” : 400], [“ErrorCode” : “40000” ]a

    • 错误使用了方括号[]:方括号在正则中是字符集,表示匹配括号内的任意单个字符,而不是匹配整个字符串,所以这个写法完全不符合你的需求

SiteScope使用注意事项

  • 有些版本的SiteScope不需要正则分隔符/,直接填写正则内容即可,可以根据实际界面要求调整
  • 测试时可以用你提供的示例日志验证正则是否生效,确保引号类型(中文/英文)和实际日志一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:51:09