我有我的SQL脚本
INSERT INTO("TEST1", "TEST2") VALUES("TEST3", "TEST4");
我只需要在TEST1和TEST2中替换双引号。 Out必须看起来像
INSERT INTO('TEST1', 'TEST2') VALUES("TEST3", "TEST4");
有可能吗? 的更新: 怎么做?
答案 0 :(得分:1)
简单(不考虑角色案例)
请尝试以下代码:
String inputQry = "INSERT INTO(\"TEST1\", \"TEST2\") VALUES(\"TEST3\", \"TEST4\");";
Integer indexOfValuesClause = inputQry.indexOf("VALUES"); // index where VALUES start
String firstPart = inputQry.substring(0,indexOfValuesClause); // first part contains String upto VALUES clause
firstPart = firstPart.replace("\"","'");
System.out.println(firstPart+inputQry.substring(indexOfValuesClause));
<强>结果强>
INSERT INTO(&#39; TEST1&#39;,&#39; TEST2&#39;)价值观(&#34; TEST3&#34;,&#34; TEST4&#34;);
答案 1 :(得分:0)
您可以使用String中的replaceAll方法和适当的正则表达式来实现。以下代码替换了第一个括号内的所有"
:
String sqlCmd = "INSERT INTO(\"TEST1\", \"TEST2\") VALUES(\"TEST3\", \"TEST4\")";
sqlCmd = sqlCmd.replaceAll("(^[^\\(]*\\(|\\G,\\s*)\"([^\"]+)\"", "$1'$2'"); //result INSERT INTO('TEST1', 'TEST2') VALUES("TEST3", "TEST4")