我正在尝试匹配列表中的数字值,并且正则表达式在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
答案 0 :(得分:0)
问题在于正则表达式正在查找非字符串值,但参数输出值是字符串,因此失败。