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

问题描述

我正在尝试匹配列表中的数字值,并且正则表达式在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

解决方法

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