根据位置查找字符,然后在正则表达式和logstash中匹配所有内容

问题描述 投票:0回答:1

这是我的字符串

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

上面的字符串是一个日志行。我想找到第三个冒号,然后匹配所有内容。 “公告:明天假期”是一个主题标题,因此我可以带或不带冒号。

我到目前为止已经尝试过了

[^:]+$     // 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}"
    }

}
regex elasticsearch logstash kibana logstash-grok
1个回答
0
投票

尝试一下(但是我知道lagstash):

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

跳过3 .+:,然后捕获其余的。

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

© www.soinside.com 2019 - 2024. All rights reserved.