根据位置找到一个字符,并在regex和logstash中匹配后面的所有内容



这是我的字符串:

消息:检测到恶意软件/病毒-Rtf。开发CVE_2017_11882-66584355-0:的消息被拒绝交付:公告:明天放假

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

到目前为止我试过这个

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

我将在我的logstash配置中使用regex。

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

为这个特定日志放弃logstash中的regex。相反我修改了日志/字符串,改为使用"主题"部分。所以logstash配置可以很简单从这个

msg:检测到恶意软件/病毒-Rtf。开发CVE_2017_11882-66584355-0:拒绝发送消息:主题-公告:明天假期

到此

msg:检测到恶意软件/病毒-Rtf。开发CVE_2017_11882-66584355-0:拒绝发送消息:主题-公告:明天假期

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

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

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

跳过3个.+:并捕获其余的。

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

相关内容

  • 没有找到相关文章

最新更新