Groovy如何筛选出列表中以数字开头的元素?
Groovy筛选以数字开头的列表元素解决方案
首先你的原脚本存在基础问题:列表中的元素未用引号包裹,Groovy会将其识别为变量而非字符串,直接运行会报错。先修正格式问题,再通过findAll方法配合正则表达式筛选目标元素。
修改后的完整脚本
def successfulBuilds = [ "QA-228-7443c745-Final_QA_Signed-Off", "227-7443c569-Final_QA_Signed-Off", "QA-226-5ca5659c-QA_Signed_Off", "225-137b4c34-QA_Signed_Off", "224-40d92670-QA_Signed_Off", "QA-223-c212132c-Fail_the_Jenkins_pipeline", "QA-222-20367839-Merge_branch__master__into_POC-Pipeline-Ownership-SRE", "221-20343339-Merge_branch__master__into_POC-Pipeline-Ownership-SRE" ] def filteredBuilds = successfulBuilds.findAll { it ==~ /^\d.*/ } println(filteredBuilds)
关键修改说明
- 修正元素格式:给每个列表元素添加双引号,确保它们被识别为字符串类型。
- 添加筛选逻辑:使用
findAll遍历列表,通过正则表达式/^\d.*/匹配以数字开头的元素:^表示字符串起始位置\d匹配任意数字.*匹配后续任意长度的字符
运行脚本后,输出结果与你期望的一致:
[227-7443c569-Final_QA_Signed-Off, 225-137b4c34-QA_Signed_Off, 224-40d92670-QA_Signed_Off, 221-20343339-Merge_branch__master__into_POC-Pipeline-Ownership-SRE]
内容的提问来源于stack exchange,提问作者Pritish
相关产品推荐
相关产品推荐

