正则表达式不匹配詹金斯管道中的值

时间:2020-09-22 05:59:04

标签: regex jenkins groovy jenkins-pipeline jenkins-declarative-pipeline

我正在尝试匹配列表中的数字值,并且正则表达式在Jenkins脚本控制台上工作正常,但是当我在管道中使用相同的代码时,我的代码返回的匹配结果为false


def tag = ["fork-point", "fork-3.0.1", "fork-3.0.0", "2.0.2", "2.0.1", "2.0.0", "1.0.1", "1.0.0"]

List<String> extractSubListUsingRegex( List<String> l) {

    String regex = "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)"
    List<String> subList = []
    for (String tag in l) {
        println tag
        boolean isMatching = (tag ==~regex)
        if (isMatching == true){
            subList.add(tag)
        }
    }

    return subList
}
println extractSubListUsingRegex(tag) 

这是正则表达式 https://regex101.com/r/BvqB6e/1

1 个答案:

答案 0 :(得分:0)

问题在于正则表达式正在查找非字符串值,但参数输出值是字符串,因此失败。