单引号检测需要正则表达式

时间:2012-12-10 10:45:01

标签: java regex pattern-matching

我需要一个正则表达式来查找以下场景中的(Anand& boy's)中的单引号,

'This has to be Anand's first task', 'A boy's friend works in France'

考虑我有很多字段要插入到DB中,就像我在上面的示例中所示。

我在其文本中有单引号的查询时出错。我需要找到它们并用''两个单引号替换它来解决这个问题。

你可以帮助我为此目的编写正则表达式吗?因为我对regEx没有太多了解。

3 个答案:

答案 0 :(得分:2)

您应该首先考虑如何确保在输入中没有明显错误的引号。但是,如果你不能,你有一个战斗机会,找到没有逗号(或字符串结尾)的引号,并且前面没有逗号(或字符串的开头):

String resultString = subjectString.replaceAll("(?<!^|, ?)'(?!,|$)", "''");

答案 1 :(得分:1)

如果这是JDBC方案,请尝试使用Prepared Statements。这是一种更好的方法,然后修改原始数据,因为额外的好处可以保护您免受SQL注入攻击。

答案 2 :(得分:0)

  1. 使用分隔符“,”(String.split(",")
  2. 拆分文本
  3. 修剪每个结果字符串(String.trim()
  4. 删除结果字符串的第一个和最后一个字符(删除初始和最后的“'”(String.subsequence()
  5. 将“'”替换为“”“(String.replace()