繁体   English   中英

根据位置查找字符并匹配 regex 和 logstash 之后的所有内容

[英]Find a character based on position and match everything after in regex and logstash

这是我的字符串:

msg:检测到恶意软件/病毒 - Rtf.Exploit.CVE_2017_11882-6584355-0:消息被拒绝发送:公告:明天假期

上面的字符串是一个日志行。 我想找到第三个冒号并匹配它后面的所有内容。 Announcement: Holiday Tomorrow是一个主题标题,所以我可以有一个冒号或没有。

到目前为止我试过这个

[^:]+$     // Holiday Tomorrow
(?<=:).*$  //  Malware/Virus detected - Rtf.Exploit.CVE_2017_11882-6584355-0:Message denied for delivery:Announcement: Holiday Tomorrow"

我将在我的 logstash 配置中使用正则表达式。

grok {

    match {
        "msg" => "(regex here)%{GREEDYDATA:subject}"
    }

}

试试这个(但我对 lagstash 一无所知):

(?:.+?:){3}(.*)捕获组 1 将有你想要的

跳过 3 .+:并捕获其余部分。

https://regex101.com/r/p2jodw/3

为此特定日志放弃了 logstash 中的正则表达式。 相反,我修改了我的日志/字符串以具有“主题 - ”部分。 所以logstash配置可以很简单从此

msg:检测到恶意软件/病毒 - Rtf.Exploit.CVE_2017_11882-6584355-0:消息被拒绝传送:主题 - 公告:明天假期

对此

msg:检测到恶意软件/病毒 - Rtf.Exploit.CVE_2017_11882-6584355-0:消息被拒绝传送:主题 - 公告:明天假期

grok {

 match {

 "msg" => "Subject - %{GREEDYDATA:headerSubject}"

 }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM