Jenkins Build Failure Analyzer插件正则表达式多行

时间:2014-05-22 14:13:54

标签: regex jenkins jenkins-plugins

我正在使用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

也没有产生任何结果。

2 个答案:

答案 0 :(得分:1)

我猜这个日志包含更多文本,即使它是空格(或换行符)。

请记住,plugin uses Pattern.match()所以必须匹配整个“行”。所以也许试试:

(?s)Total(.*)failure.*

更具体一点,你可以用\ s *结束以匹配尾随空格:

(?s)Total(.*)failure\s*

答案 1 :(得分:-1)

Build Analyzer插件使用Pattern.match对抗单行 - 您尝试匹配多行字符串。

来自the wiki page

  

构建日志指示搜索构建日志,在a处搜索一行   时间,为正则表达式。