2011-07-16 13 views
5

例:regexと一致する文字列はSQLスタイルでエスケープされていますか?

"""Romeo and Juliet""" 
'another string that is quoted with '' single quotes' 

問題は、与えられた文字が1,3である奇数長のシーケンスで使用されている場合、文字列はデシベルもそれでエスケープするために使用される文字を持つことができ始めと終わりなので正規表現は見なければならないことです、5 ...一致した文字列の最後に

+0

? SQL ServerはCLR(2005+)を使わない正規表現をサポートしていません。オラクルのサポートは10gから始まります。 –

答えて

7

この正規表現を試してください:'(?:[^']|'')*'一重引用符です。 、二重引用符で同じ、すなわち、完全な正規表現:文字列hello 'my ''beautiful''' 'world'! """Romeo and Juliet"""

'(?:[^']|'')*'|"(?:[^"]|"")*" 

はそれがあります:どのようなデータベースの場合

  1. 'my ''beautiful'''
  2. 'world'
  3. """Romeo and Juliet"""
-1

文字列にはSQLに問題を引き起こす文字が含まれているか、または含まれている場合、は常にでなければなりません。

あなたはMySQLデータベースとPHPを使用している場合は、他のデータベースと言語についてmysql_real_escape_string($text);docs

を使用し、あなたの特定の目的のためにチェックする必要がありますが、既存の方法である可能性が高いがありますよ。

+1

私はこれらの文字列をエスケープしたくありません。私は既にそれらをエスケープしています。私はregexを使用してSQLコマンドからこれらのエスケープ文字列を釣りたい – rsk82

関連する問題