我正在使用Jenkins Build Failure Analyzer插件尝试匹配构建日志中的多行模式。我想在日志中匹配的文本是:
Total time: 1 minute 45 seconds
Build step 'Invoke Ant' marked build as failure
我正在使用的正则表达式是:
(?s)Total(.*)failure
看起来很简单,但这与上面的行不匹配。
我正在使用的另一个例子是:
[java] ACTION REQUIRED
[java]
[java] I want to match this line
[java] as well as this line
[java]
[java] CONSOLE LOG
这方面的正则表达式是:
(?s)REQUIRED(.*)CONSOLE
也没有产生任何结果。
答案 0 :(得分:1)
我猜这个日志包含更多文本,即使它是空格(或换行符)。
请记住,plugin uses Pattern.match()所以必须匹配整个“行”。所以也许试试:
(?s)Total(.*)failure.*
更具体一点,你可以用\ s *结束以匹配尾随空格:
(?s)Total(.*)failure\s*
答案 1 :(得分:-1)