And I want to do a regex gsub on it to turn it into…
“This is ( a test”
In irb, If I start with…
“This is ( a test”.gsub(/[(]/,‘&’) => “This is ( a test”
And then progressively added more backslashes, I get the following
results, none of which are what I’m looking for. The second one is,
IMO, the one that should work.
“This is ( a test”.gsub(/[(]/,‘\&’) => “This is ( a test”
“This is ( a test”.gsub(/[(]/,‘\&’) => “This is \& a test”
“This is ( a test”.gsub(/[(]/,‘\\&’) => “This is \& a test”
“This is ( a test”.gsub(/[(]/,‘\\&’)=> “This is \( a test”
Am I just having a serious case of the mondays, or is there a bug in how
Ruby deals with \ characters when trying to represent an actual single
character?
I’m using ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
And I want to do a regex gsub on it to turn it into…
“This is ( a test”
In irb, If I start with…
“This is ( a test”.gsub(/[(]/,’&’) => “This is ( a test”
And then progressively added more backslashes, I get the following
results, none of which are what I’m looking for. The second one is,
IMO, the one that should work.
“This is ( a test”.gsub(/[(]/,’\&’) => “This is ( a test”
“This is ( a test”.gsub(/[(]/,’\&’) => “This is \& a test”
“This is ( a test”.gsub(/[(]/,’\\&’) => “This is \& a test”
“This is ( a test”.gsub(/[(]/,’\\&’)=> “This is \( a test”
Am I just having a serious case of the mondays, or is there a bug in how
Ruby deals with \ characters when trying to represent an actual single
character?
I’m using ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
irb shows you the result using p, which escapes special characters in
the string it displays. Use puts to see the actual string.
C:>irb
irb(main):001:0> x = “This is ( a test”
=> “This is ( a test”
irb(main):002:0> x.gsub(/(/, ‘\(’)
=> “This is \( a test”
irb(main):003:0> y = x.gsub(/(/, ‘\(’)
=> “This is \( a test”
irb(main):004:0> puts y
This is ( a test
=> nil
irb(main):005:0>
In irb, If I start with…
“This is ( a test”.gsub(/[(]/,‘\\&’)=> “This is \( a test”
the string it displays. Use puts to see the actual string.
=> nil
irb(main):005:0>
Oh, fer cryin’ out loud. Case of the mondays it is. Thanks.
In irb, If I start with…
“This is ( a test”.gsub(/[(]/,’\\&’)=> “This is \( a test”
Yikes…thanks for the reminder. I always seem to find 6 hard ways to do
something before learning (and occasionally discovering) an easy way.
Regexp.escape solve LOTS of problems quickly. ~t.
–
Tom C., MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< [email protected] >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)
“This is ( a test”.gsub(/[(]/,’&’) => “This is ( a test”
Am I just having a serious case of the mondays, or is there a bug in how
Ruby deals with \ characters when trying to represent an actual single
character?
I’m using ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
you know Regexp.escape ?
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.