【发布时间】:2019-09-10 07:00:17
【问题描述】:
我想用两个引号替换所有出现的单引号,除了第一次和最后一次出现,我设法使用正则表达式排除最后一次出现,如下所示
String toReplace = "'123'456'";
String regex = "'(?=.*')";
String replaced = toReplace.replaceAll(regex,"''");
System.out.println(replaced);
我来了
''123''456'
如何获得
'123''456'
谢谢。
【问题讨论】:
-
您是否要转义 SQL 的值?
-
也许你可以用两个替换所有单引号,然后删除第一个和最后一个单引号?
-
replaced.substring(0,1)删除第一个字符怎么样,因为你已经声明你排除了最后一个字符 -
@kayaman 是的,我是 sql 转义字符串
-
@Meesh 然后停止你正在做的事情。手动转义值是没有用的,而使用正则表达式来做这件事既复杂又没用。使用
PreparedStatement.setString(),它将逃避一切必要的事情。那么你也不需要开头和结尾的'。
标签: java replaceall