0

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

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

考虑我有很多字段要插入到数据库中,就像我在上面的示例中显示的那样。

我对文本中有单引号的查询有错误。我需要找到它们并用 '' 两个单引号替换以解决此问题。

您能帮我为此目的编写正则表达式吗?因为我对正则表达式没有太多了解。

4

3 回答 3

2

您应该首先研究如何确保不会在输入中得到这些明显不正确的引号。但如果你不能,你有机会找到不带逗号(或字符串结尾)且前面不带逗号(或字符串开头)的引号:

String resultString = subjectString.replaceAll("(?<!^|, ?)'(?!,|$)", "''");
于 2012-12-10T10:54:55.447 回答
1

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

于 2012-12-10T10:54:59.780 回答
0
  1. String.split(",")使用分隔符 "," ( )分割文本
  2. 修剪每个结果字符串 ( String.trim())
  3. 删除结果字符串的第一个和最后一个字符(删除初始和最后的“'”(String.subsequence()
  4. 将 "'" 替换为 """ ( String.replace())
于 2012-12-10T10:52:25.330 回答