"Andreas Schwarz" <usenet / andreas-s.net> schrieb im Newsbeitrag
news:slrnbhr0jv.d34.usenet / home.andreas-s.net...
> I wanted to do a simple string substitution, and was surprised to see
> that there isn't such a method in ruby. I can't use String::(g)sub,
> because the substitution mustn't be influenced by special chars or
> backreferences in the pattern and replacement strings. Of course I could
> write functions to escape regex special chars in the pattern and
> backreferences in the replacement string, but this is about the ugliest
> solution I can think of.

Where's the problem?

irb(main):004:0> "foo.bar".gsub '.', "*"
(irb):4: warning: string pattern instead of regexp; metacharacters no
longer eff
ective
"foo*bar"
irb(main):005:0>

There's just this ugly warnig.  Anyone know a way to switch that off?

Or you use Regexp.escape as others already have pointed out:

irb(main):017:0* "foo.bar".gsub( /#{Regexp.escape(".")}/, "*" )
"foo*bar"
irb(main):018:0>

Cheers

    robert