正则表达式替换不同类型的单引号

时间:2012-05-07 19:27:36

标签: c# mysql regex

那些喜欢在MySQL中造成严重破坏的令人讨厌的单引号似乎有表兄弟!我们有一个系统,用户可以从客户那里获得更新,或者从电子邮件中粘贴内容,或者从几乎任何地方复制和粘贴,每次我们提供一个单一的报价,另一个弹出。以下是不同的内容:’ ´ ' `< -

由于我的正则表达式非常弱,我的开发人员说我应该使用以下方法删除它们:

return Regex.Replace(oldText, @"[’´'`""]", @"");

我不喜欢这个,它不专业,删除所有单引号。正如许多论坛所建议的那样,我想做的只是单引号的两倍。这是正确的吗?

return Regex.Replace(oldText, @"[’´'`""]", @"''");

这已经完成,因为在他的DAL中,他用单引号构造他的插入语句:

sql.Append(",`to_complete_by`='" + obj.toCompleteBy + "'");

我可以通过将^^更改为此来避免此错误吗?

sql.Append(",`to_complete_by`=\"" + obj.toCompleteBy + "\"");

或正则表达式替换首选方法?

1 个答案:

答案 0 :(得分:1)

如果您正在使用不支持预准备语句的旧版MySQL,您至少应该利用现代数据库接口可以模拟数据库本身不支持的这些功能这一事实。在你的情况下,它不是潜在的性能提升,而是通过语句语法和值表示的分离增加了安全性。