Escaping Apostrophes Using Gsub
I'm working in Ruby and I'm trying to escape '
characters to \'
so that I can use them in SQL. I'm trying to use gsub
, but it doesn't seem to be workin开发者_如何学Pythong.
"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"
I don't know if gsub
is even the right method to be using, so I'm willing to try almost anything that gets the results I'm looking for.
Someone else had this very issue, due to a special meaning/interpretation in Ruby's regex.
\' means $' which is everything after the match. Escape the \ again and it works
See this answer.
Does this work?
"this doesn't work".gsub /'/, '\\\\\'' => "this doesn\\'t work"
You must escape the \ and the '. When you need the ' in the result, why not define the result with "
puts "this doesn't work".gsub /'/, "\\\\'" #=> "this doesn\'t work"
\ must be escaped anyway.
精彩评论