Regex Groovy中的多行正则表达式不匹配

Regex Groovy中的多行正则表达式不匹配,regex,jenkins,logging,groovy,multiline,Regex,Jenkins,Logging,Groovy,Multiline,我正在努力在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.bui

我正在努力在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(.)aggregerte Fehler.*”

问题是Jenkin的goovy postbuild插件限制为单行,正如daggett在我的问题上评论的那样。

log matcher逐行匹配日志文件。因此,它不支持多行匹配:但是您可以重用此代码来实现自己的逻辑。