正则表达式替换不正确的查询

时间:2011-02-07 15:53:41

标签: java regex

您好我正在用Java编写一个小工具来读取sql查询并处理它们,但在我的一些查询中 单引号(')嵌入另一个单引号句子中因为这个我无法处理查询plz请参阅下面的示例了解更多详细信息所以我试图找到一个正则表达式来预处理查询

示例:

原始查询

insert into person values ('kumar's kandan', 23, 'Male')

预处理查询

insert into person values ('kumar''s kandan', 23, 'Male')

2 个答案:

答案 0 :(得分:1)

在生成SQL时,应使用PreparedStatement或类似的东西来转义这些字符。这个工具听起来应该只是假设查询已经正确而不是试图动态修复问题。

答案 1 :(得分:0)

您可以替换前面和后面都有单词字符的所有单引号:

str = str.replaceAll("(?<=\\w)'(?=\\w)","''");

虽然这当然不能保证所有内容都能正确转义。