想为我的多行日志获取一个正则表达式

时间:2016-07-05 00:42:36

标签: regex ibm-mq

我正在尝试形成正确的正则表达式来捕获多行日志中的字符串,如 -

AMQ9206: Error sending data to host hic4 (10.254.101.168)(1414).

AMQ9999: Channel 'TO.MQH4' to host 'HIC4(1414)' ended abnormally.

多行日志排泄如下 -

06/17/16 22:45:14 - Process(509640.1) User(mqsystem) Program(runmqchl)
                    Host(mqah103p) Installation(MQAppliance)
                    VRMF(8.0.0.4) QMgr(PRDCDE3A)

AMQ9206: Error sending data to host hic4 (10.254.101.168)(1414).

--------------------------- amqccita.c : 3166 ----------------------------------

06/17/16 22:45:14 - Process(509640.1) User(mqsystem) Program(runmqchl)
                    Host(mqah103p) Installation(MQAppliance)
                    VRMF(8.0.0.4) QMgr(PRDCDE3A)

AMQ9999: Channel 'TO.MQH4' to host 'HIC4(1414)' ended abnormally.

1 个答案:

答案 0 :(得分:1)

根据编程语言的不同,这一点会略有不同,但主要技巧是在正则表达式中启用多行模式。这将允许^$等特殊字符匹配的开头和结尾,而不是字符串的开头和结尾。

假设您的日志始终具有AMQ的一般格式,后跟4个数字,则正则表达式将类似于:

/^AMQ\d{4}: .*$/gm

Regex101 Demo