Hi,
I want to replace all occurences of a certain character in a string
with a backslash followed by a single quote. Sounds like a trivial
task, but this is what I get:
“this is a test”.gsub( “a”, “\’” ) -> “this is test test”
What I want is “this is ’ test”.
Neither does this work:
“this is a test”.gsub( “a”, ‘’ + “’” )
No matter what I am doing, as soon as a backslash is followed by a
single quote in the replacement string, I am getting weird results.
Thanks for your help!
Andreas
ridcully wrote:
Neither does this work:
“this is a test”.gsub( “a”, ‘’ + “’” )
No matter what I am doing, as soon as a backslash is followed by a
single quote in the replacement string, I am getting weird results.
Backslashes are confusing. Try this:
puts “this is a test”.gsub( “a”, “\\’” )
On 17 Nov., 12:22, Alex Y. [email protected] wrote:
Backslashes are confusing. Try this:
puts “this is a test”.gsub( “a”, “\\'” )
–
Alex
Thank you, you saved my day!
This really is confusing, because “\'” gives me the correct result if
I don’t use it with gsub:
puts “\'” → '
Am I missing something here?
Andreas
On Nov 17, 2007 7:20 PM, ridcully [email protected] wrote:
“this is a test”.gsub( “a”, “\'” ) → “this is test test”
many ways, eg
~> “this is a test”.gsub(“i”,Regexp.escape(“\'”))
=> “th\'s \'s a test”
~> “this is a test”.gsub(“i”){“\'”}
=> “th\'s \'s a test”
the block form seems clean though.
kind regards -botp