问题描述
我正在努力在Groovy中构建多行匹配的正则表达式。
给出以下日志:
12:42:44,914 ma# ERROR [a.o.k.b.p.A] ********************* Es folgen aggregierte Fehler *********************
12:42:44,915 ma# ERROR [a.o.k.b.p.A] at.java.lang.NullPointerException
at a.o.k.b.s.AbstractSvc.buildFinalException(AbstractSvc.java:236)
(in 2 Items,z.B. 1114/00347,1114/00537)
12:42:44,916 ma# ERROR [a.o.k.b.p.A] HTTP 400
(in 2 Items,z.B. 1128/01634,1128/02616)
12:42:44,916 ma# ERROR [a.o.k.b.p.A] >>>>> 50 Polizzen polizziert,davon 4 Polizzen fehlerhaft mit 2 verschiedenen Fehler!
我正在尝试通过以下方式访问Jenkins日志
def logMatcher = manager.getLogMatcher('(?s).*aggregierte(.*)Polizzen polizziert.*')
if (logMatcher?.matches()) {
def result = logMatcher.group(1)
manager.addWarningBadge(result)
}
我希望它会给我一个粗略的匹配(包括第一行和最后一行的一部分),但是不会在if块中运行。
我在这里做错了什么?我在regex101.com上的测试表明,这应该可以工作。在Jenkins上,只有在一行内,例如regex“。 Es(。)aggregierte Fehler。*”
解决方法
问题是,正如daggett在评论我的问题时一样,詹金的goovy-postbuild-plugin限制为单行。