【问题标题】:Groovy: Replace combination of , and )Groovy:替换 , 和 ) 的组合
【发布时间】:2023-04-01 23:16:01
【问题描述】:

如何在 groovy 中同时用 ) 替换逗号和右括号? 我尝试用双转义替换所有

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?

【问题讨论】:

标签: regex groovy


【解决方案1】:

您的问题有点令人困惑,但要替换 ,') 您根本不需要转义。只需使用

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')

解释:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多