gpt4 book ai didi

Jenkins 管道正则表达式不匹配任何东西

转载 作者:行者123 更新时间:2023-12-04 11:19:21 24 4
gpt4 key购买 nike

我有一个带有示例文本 that is working on regex101 的正则表达式,但似乎在我的 Jenkins 管道场景中不起作用。所以我假设我的管道脚本有错误,但我看不到哪里。

这是一个再现:

pipeline {
agent any

stages {
stage ('Test') {
steps {
script {
echo ("Test")

output = "Some text. \n\n 12 scenarios (3 failed, 2 success) plus text \n\n and some more text"
def hasSummaryMatch = (output ==~ /\d+ scenarios \([^()]+\)/)

echo ("hasSummaryMatch = " + hasSummaryMatch)

if (!hasSummaryMatch) {
error ("No summary!")
}
}
}
}
}
}

我已经使用在官方 Docker 容器中运行的 Jenkins 2.60.2 对此进行了测试。

这提供了以下(缩写)输出:

Started by user Administrator
Running on master in /var/jenkins_home/workspace/Test001
Test
hasSummaryMatch = false
ERROR: No summary!
Finished: FAILURE

预期的输出没有错误,因为应该有匹配项。

我究竟做错了什么?

最佳答案

  • 只需使用 =~ (the find operator ) 而不是 ==~ (the match operator ):
    def hasSummaryMatch = (output =~ /\d+ scenarios \([^()]+\)/)
  • 当使用匹配运算符 ==~ 时,则需要输入字符串的严格匹配
  • 关于 Jenkins 管道正则表达式不匹配任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070923/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com