我正在尝试形成正确的正则表达式来捕获多行日志中的字符串,如 -
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.
答案 0 :(得分:1)
根据编程语言的不同,这一点会略有不同,但主要技巧是在正则表达式中启用多行模式。这将允许^
和$
等特殊字符匹配行的开头和结尾,而不是字符串的开头和结尾。
假设您的日志始终具有AMQ
的一般格式,后跟4个数字,则正则表达式将类似于:
/^AMQ\d{4}: .*$/gm