如何使用 Java 从单个字符串中删除单行 SQL 注释?我尝试了以下类似的方法,但这似乎不是万无一失的。需要一个正则表达式,当它们在 select 语句中显示为文字时,将解释 '--' 字符,如 select '--hi' from dual。
protected String removeSingleLineComments(String sql)
{
Pattern pattern = Pattern.compile("--[^\r\n]*");
Matcher matcher = pattern.matcher(sql);
while(matcher.find()) {
if((matcher.start()==0) || (matcher.start()>0 && sql.charAt(matcher.start()-1) != '\''))
{
sql =sql.replace(sql.substring(matcher.start(), matcher.end()), "").trim();
}
}
return sql;
}