注意:我不得不简化我的实际用例来节省大量的背景故事。所以如果你对这个问题的第一反应是:你为什么要这样做,相信我,我只需要这样做。
我正在尝试编写一个 Groovy 表达式,用单引号 (" "
") 替换出现在字符串中的双引号 (" '
")。
// BEFORE: Replace my "double" quotes with 'single' quotes.
String toReplace = "Replace my \"double-quotes\" with 'single' quotes.";
// Wrong: compiler error
String replacerExpression = "toReplace.replace(""", "'");";
Binding binding = new Binding();
binding.setVariable("toReplace", toReplace);
GroovyShell shell = new GroovyShell(binding);
// AFTER: Replace my 'double' quotes with 'single' quotes.
String replacedString = (String)shell.evaluate(replacerExpression);
问题是,我在分配的行上遇到编译错误replacerExpression
:
令牌 ""toReplace.replace("", { 预期的语法错误
我认为这是因为我需要转义包含双引号字符(“”“)的字符串,但由于它是字符串内的字符串,我不确定如何在这里正确地转义它。有什么想法吗?谢谢提前!