如何在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?
答案 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')
说明:
您正在使用正则表达式创建第二个可替换文本,当您尝试替换它时它不存在,但是由于第一次替换而创建了。所以我们在循环中创建一个新的匹配器,让它再次找到字符串......