gpt4 book ai didi

regex - Jenkins 管道正则表达式模式不匹配

转载 作者:行者123 更新时间:2023-12-05 03:58:27 25 4
gpt4 key购买 nike

目前有一个不寻常的问题,我正在运行标签列表并针对正则表达式模式进行测试以查看它是否匹配。

def tags = sh ( script: "git ls-remote --tags git@bitbucket.org:<PATH_TO_GIT_REPO>.git ", returnStdout: true)
def tag_line = tags.split("\n")
tag_line.each
{
tag ->
// println(tag)
current_tag = tag.split()[1].split("/")[2].trim()
println("Current Line: " + current_tag)

def major = (current_tag =~ /v.+\.\d+\.\d*/)
println(major)

}

如果我使用正则表达式在线测试器,则会返回匹配项。但是无论我做什么,控制台的输出如下:

Current Line: v1.9.0^{}
[Pipeline] echo
java.util.regex.Matcher[pattern=v.+\.\d+\.\d* region=0,9 lastmatch=]
[Pipeline] echo
Current Line: v1.9.1
[Pipeline] echo
java.util.regex.Matcher[pattern=v.+\.\d+\.\d* region=0,6 lastmatch=]

最佳答案

lastmatch 属性为空,因为 def major = (current_tag =~/v.+\.\d+\.\d*/) 代码行您只初始化了 Matcher 对象,但还没有“运行”它。

要获得匹配,您需要先运行它,您可以通过使用

if (major) {
println major.group()
}

如果您的正则表达式模式中有捕获组,请在 group() 中使用适当的 ID。

关于regex - Jenkins 管道正则表达式模式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57958477/

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