2016-11-03 3 views
0

検索する文字列があります。文字列は[closed] です。なぜなら、[]の特別な意味のために、[[]と[]をそれぞれ入れ替える必要があります。 検索する文字列にそのうちの1つだけが存在する場合、これは正常に動作します。もし閉じた括弧と開いた括弧の両方が存在するならば、それは与える問題です。 最初に文字列を[[]閉鎖] として更新すると、それは[]ブラケットに置き換わり、結果は [[[]]closed[]]のようになります。 置き換えることは可能ですか?[closed] to [[]closed[]]sybaseの[[]と[and]]を[]]に置き換えることが可能です

例:パターンが[closed]のデータの列を検索しています。 [と] sybaseの中で特別な意味があるので、[クローズ]を正確に検索しません。したがって、検索を正確に行うために、[[]と[]で置き換える必要があります。文字列は[[]閉じた[]]のように見えます。 ありがとう rinu

+0

ここでパターンをよく理解していないのですが、置き換えがうまくいけば、 '['と ']'を区別することができません。いくつかの例を挙げてここに必要ですか? –

+0

質問が更新されました – doubting

+0

なぜあなたはこれをやりたいのでしょうか、なぜこれが可能になるのか理解できません。 '['と ']'があなたの検索で特別な意味を持つならば、これはちょうど同じ問題の多くを追加しますか?いずれにしても、決して存在しないことが保証されている「マジックバリュー」を見つけることができれば、最初にブラケットの1つを置き換えてから後で戻すことができます: 'Replace(Replace(Replace(input、 '[あなたのために何かを実際に解決するかどうかは分かりません。 –

答えて

0

ありがとうございました。 []には特別な意味があるので、[asd]を検索するとランダムな結果が得られます。だから、これを避けるために私は特別な手段から脱出する必要があります。私は以下のように置き換えずにこれを行う方法を見つけました。 最初に開いた括弧を のように置き換えます。@string = str_replace(@string、 '['、 '|' ') 次に、メインクエリで、検索対象のエスケープキーワードを以下のように追加します。 column_name'%@ string % 'エスケープ' | '

関連する問題