0

以下のシナリオの (Anand's & boy's) の一重引用符を見つけるには、正規表現が必要です。

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

上記の例で示したように、DB に挿入するフィールドが多数あるとします。

テキストに一重引用符が含まれているクエリでエラーが発生しました。これを解決するには、それらを見つけて '' 2 つの単一引用符に置き換える必要があります。

この目的のために正規表現を書くのを手伝ってもらえますか? 私はregExについてあまり洞察していないので。

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 に答える