Eric Armstrong wrote: > I'm going crazy, right? Surely it is possible > to find a backslash (\) in a string, and > replace it with two backslashes. That's simple, > right? Just gsub("\\", '\\'). That's all there > is to it. > > Except that... > > #!/usr/bin/env ruby > > testpath = "\\foo\\bar" > p testpath # => "\\foo\\bar" --representation > puts testpath # => \foo\bar --what you see > > result = testpath.gsub("\\", '\\') > p result # => "\\foo\\bar" > (represenation unchanged. Should be "\\\\foo\\\\bar") > > puts result # => \foo\bar > (unchanged. should be \\foo\\bar) > > I've tried lots of gsub variations, like > /\\/, '\\', "\\\\", and anything else I could > think of that came even close to being sensible, > but I've yet to find anything that works. > > My workaround will be to add a sed script to > filter the input. But surely that isn't necessary. > Is it? >> puts "\\foo\\bar".gsub(/\\/, '\&\&' ) \\foo\\bar