Groovy代码使用Regex将列表转换为定义的字符串



如何在groovy中使用正则表达式(regex(进行同样的操作:每当我发现";OK";在我需要删除的列表的一个项目中;OK";包括整个项目的倒逗号。我用循环来做。这是我的groovy语言的原始代码。请帮助我展示在groovy中执行相同操作的方法(通过使用正则表达式(regex((

def List l = ["a","OKb","c","d"]
def s = '"' + l.join('","') + '"'
println s
String[] S_Arr = s.split(',')
int len = S_Arr.size()
for(int i = 0; i<len; i++){
if(S_Arr[i].contains("OK")){
S_Arr[i] = S_Arr[i].replace("OK", "")
S_Arr[i] = S_Arr[i].replace('"', "")
S_Arr[i] = S_Arr[i].replace('"', "")
}
}
println S_Arr
**Input :** 
def List l = ["a","OKb","c","d"]

**Output :**
["a", b, "c", "d"]

可以想出一个正则表达式来进行您想要的转换,但它并不总是可读的。

这是一个替代的模式

def l = ['"a"', '"OKb"', '"c"', '"d"']
def result = l.collect{it.replaceAll('"(.*)OK(.*)"', '$1$2')}

我认为它的可读性不如

def result = l.collect{it.contains('OK') ? it.replaceAll('OK|"', '') : it}

两者都输出CCD_ 1。

最新更新