我有一个看起来像这样的日志文件:
2012-05-04 01:10:35;301383027;00133608663205759673480010256592;103;错误;摘要治疗:119;等等
废话2
废话3
2012-05-02 01:00:22;301382163;00133591322220336011720010256592;103;错误;摘要处理:119;blah4
废话5
废话6
2012-05-02 01:00:23;301382163;00133591322220336011720010256592;103;错误;摘要处理:119;等等
废话8
废话9
我想要 3 个匹配项,每个匹配项包含 3 个捕获的组:日期、严重性和消息。
我试过使用这种模式
(20[0-9]{2}-[0-2][0-9]-[0-9]{2} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]);[^;]*;[^;]*;[^;]*;([^;]*);(.*)
启用 Singleline 选项后,我有一个匹配项(整个输入),禁用此选项后,消息未完全捕获(仅与日期位于同一行的部分)。
我怎么能有与我想要正确捕获的 3 个值的日志条目一样多的匹配项?
编辑:我试图捕捉这样的比赛:
日期: 2012-05-04 01:10:35
严重性:错误
消息: AbstractTreatment:119;blah1
废话2
废话3