在变量中使用正则表达式的groovy if语句
我想删除以AAA开头的Jenkins作业列表(例如)
当我用显式字符串做它很好用
if (item.name ==~ /AAA.*/){ item.delete()
}
但是,当我尝试从Jenkins Build属性获取正则表达式时,我失败了,并且if没有被调用…
import hudson.model.*import hudson.node_monitors.*
import hudson.slaves.*
import java.util.concurrent.*
jenkins = Hudson.instance
def thr = Thread.currentThread()
def build = thr?.executable
String REGEX = build.environment.get("Include_Regex")
println "REGEX is " + REGEX
for (item in jenkins.items){
println("\t ${item.name}");
println("\t ${item.name.getClass()}");
if (item.name ==~ REGEX){
item.delete()
println("TEST");
}
}
运行它时,我会得到所有作业的列表:在工作区中构建/ var / lib / jenkins / jobs / Bulk_Delete_Job /
workspace
REGEX is /AAA.*/ AAA_test_1
class java.lang.String
AAA_test_2
class java.lang.String
AAA_test_3
class java.lang.String
Bulk_Delete_Job
class java.lang.String
ConfiguredJob
class java.lang.String
JobZ
class java.lang.String
TEST_SCM
class java.lang.String
但是什么也不会被删除/不会打印“ TEST”-> if永远都不是…。
需要协助,谢谢!
回答:
字符串不应该包含斜杠-使用AAA。代替/AAA./。
以上是 在变量中使用正则表达式的groovy if语句 的全部内容, 来源链接: utcz.com/qa/422283.html