From: badboy Date: 2009-02-11T03:47:57+09:00 Subject: Re: regex to escape special characters Jon Garvin schrieb: > I've got the following string... > > "This is ( a test" > > 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] > you know Regexp.escape ?