Groovy:替换组合,和)

时间:2016-09-06 21:21:24

标签: regex groovy

如何在groovy中同时使用替换逗号和右边的parantheses ,')? 我尝试使用双重转义替换所有

value = "('cat','rat',',')";
//Replace  ,')  with )
value = value.replaceAll('\\,')',')');

没有运气就试过这些  How can I replace a string in parentheses using a regex?

How to escape comma and double quote at same time for CSV file?

1 个答案:

答案 0 :(得分:2)

您的问题有点过时,但要替换,'),您根本不需要逃避。只需使用

def value = "('cat','rat',',')";
println value.replace(",')", ")"); // ('cat','rat',')

但是,我认为你更希望得到这个结果('cat','rat')。正确?

如果是这样,您可以使用Pattern

使用以下代码
import java.util.regex.Pattern

def value = "('cat','rat',',')";
def pattern = Pattern.compile(",'\\)");
def matcher = pattern.matcher(value);
while (matcher.find()) {
    value = matcher.replaceAll(")");
    matcher = pattern.matcher(value);
}
println value; // ('cat','rat')

说明:

您正在使用正则表达式创建第二个可替换文本,当您尝试替换它时它不存在,但是由于第一次替换而创建了。所以我们在循环中创建一个新的匹配器,让它再次找到字符串......