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

如何编写正则识别CEF Syslog日志引号内的所有等号?

解决CEF Syslog消息中引号内多等号的正则匹配问题

问题背景

需要解析CEF Syslog消息中的URL路径,现有正则无法处理引号包裹的值内存在多个未转义“=”的场景,目标是精准识别所有位于双引号内部的“=”符号。

现有正则\".*(=).*\"存在两个核心问题:

  1. 贪婪匹配会导致跨引号范围的错误匹配
  2. 仅能捕获引号内的第一个“=”,无法识别多个等号

示例场景

原始CEF消息片段:

<14>1 2022-12-16T12:07:15+00:00 HOSTNAME CEF:0|Palo Alto Networks|PAN-OS|9.4.1|Suspicious HTTP Evasion Found|THREAT|1|rt=Dec 16 2022 12:07:15 GMT deviceExternalId=000000000 request="browser.events.data.msn.com/OneCollector/1.0?cors=true&content=" cs2Label=URL Category cs2=internet-portals

现有正则仅能匹配第一个“=”,无法识别content=中的等号,而预期是两个等号都被匹配。

解决方案

使用基于环视断言的正则表达式,精准锁定双引号内部的所有“=”:

(?<="[^"]*)=(?=[^"]*")

正则解释

  • (?<="[^"]*):反向肯定环视,确保当前位置的左侧是双引号,且引号后到当前位置之间没有其他双引号
  • =:匹配目标等号字符
  • (?=[^"]*"):正向肯定环视,确保当前位置的右侧直到下一个双引号之间没有其他双引号

这个正则会匹配所有位于一对双引号内部的“=”,不会跨引号匹配,也不会遗漏同一引号内的多个等号。

匹配效果验证

针对上述示例消息,该正则会同时匹配:

  1. cors=true中的=
  2. content=中的=

完全符合预期的匹配结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:30:39