Спасаясь от апострофов с помощью Gsub - PullRequest
4 голосов
/ 28 июня 2011

Я работаю в Ruby и пытаюсь экранировать ' символов в \', чтобы использовать их в SQL.Я пытаюсь использовать gsub, но, похоже, он не работает.

"this doesn't work".gsub /'/, '\\'' #=> "this doesnt workt work"
"this doesn't work".gsub /'/, '\\\'' #=> "this doesnt workt work"
"this doesn't work".gsub /'/, '\\\\'' #=> "this doesn\\'t work"
"this doesn't work".gsub /'/, '\\\\\'' #=> "this doesn\\'t work"

Я не знаю, является ли gsub даже правильным методом для использования, поэтому я 'Я готов попробовать практически все, что получит результаты, которые я ищу.

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

У кого-то еще была эта проблема из-за особого значения / интерпретации в регулярном выражении Руби.

\ 'означает $', что после всего матч. Избежать снова \ и работает

См. этот ответ .

Это работает?

"this doesn't work".gsub /'/, '\\\\\'' => "this doesn\\'t work"
0 голосов
/ 28 июня 2011

Вы должны убежать от \ и '.Когда вам нужен 'в результате, почему бы не определить результат с помощью "

puts "this doesn't work".gsub /'/, "\\\\'" #=> "this doesn\'t work"

\, в любом случае необходимо экранировать.

...