字符串过滤

问题描述 投票:0回答:1

我有一个类似 Java 的 Groovy 脚本,用于 Jenkins 管道。

在那里我有以下场景。 有一个带字符串的 ArrayList,指定脚本的版本,例如:

def version_list = [] as ArrayList<String>
-> [Version-2.5.0.0, Version-2.4.0.0, Version-2.3.1.0, Version-2.3.0.0, Version-2.0.0.0]

此列表是固定的,无法修改。 我正在遍历列表以获取每个元素,进行一些处理。

另外我需要检查每个元素,如果有相同版本的点发布,即:

   version_list.each{each_version -> //each_version = Version-2.3.0.0
                    if(version_list.contains(2.3.x.0)){ //while x!=0
                       print("Version " + each_version + "has point_release")
                    }
                }

我已经尝试过以下方法,但这不起作用。

 def version_list = [] as ArrayList<String>
 def splitted_ver = [] as ArrayList<String>
 
 version_list.each{each_version ->
                        splitted_ver = each_version.split("\\.")
                        if (version_list.contains("^" + splitted_ver[0] + "." +  splitted_ver[1] + "(.([1-9]+)\\.([0-9]+)\$)")){
                            print(each_version + " has a point_release!")   
                        }else{
                            print("has no point_release")
                        }
                    }
java jenkins groovy jenkins-groovy
1个回答
0
投票

假设它们都是像

Version-2.3.0.0
这样的格式,这样的东西应该可以工作。

version_list.each{each_version -> {
    splitted_ver = each_version.substring(8).split(“.”)
    if (splitted_ver[2] != “0”)){
        print(each_version + " has a point_release!")
    }else{
        print("has no point_release")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.