SUMO Logic正则解析:如何处理嵌套引号提取确认号
解决方案
直接用SUMO Logic的extract命令结合适配JSON键值对的正则表达式,就能提取不带引号的确认号,同时支持多条目场景:
| extract "\"ConfirmationNumber\":\"(?<ConfirmationNumber>[^\"]+)\"" multi nodrop
语法解释
\"ConfirmationNumber\":\":转义双引号,精准匹配日志里的"ConfirmationNumber":"前缀(?<ConfirmationNumber>[^\"]+):命名捕获组,[^\"]+表示匹配所有非双引号字符,刚好截取引号内的确认号,不会带结尾的引号\":匹配结尾的闭合双引号,确保匹配完整的键值对multi:开启多值提取,满足日志中1-500+条目的场景nodrop:保留原始日志行,避免只输出提取出的字段
为什么之前的XML语句不适用
你之前的XML解析语句是针对<ConfirmationNumber>...</ConfirmationNumber>这种标签结构设计的,而当前日志是JSON风格的双引号键值对,语法结构完全不同,自然无法匹配。
可选优化
如果只想查看提取后的确认号,可追加fields命令过滤输出:
| extract "\"ConfirmationNumber\":\"(?<ConfirmationNumber>[^\"]+)\"" multi nodrop | fields ConfirmationNumber
内容的提问来源于stack exchange,提问作者Paulonious1
相关产品推荐
相关产品推荐

