这是我的字符串:
消息:检测到恶意软件/病毒-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