Issue #6474 has been reported by hadmut (Hadmut Danisch).

----------------------------------------
Bug #6474: Substitution bug in String # gsub
https://bugs.ruby-lang.org/issues/6474

Author: hadmut (Hadmut Danisch)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]


Hi,

I need to replace all occurences of &  with \&  in a String (generating LaTeX input). 

However, gsub has a problem with unescaping the \ character in the replacement string:

irb(main):001:0> "a&b"
=> "a&b"
irb(main):002:0> "a&b".gsub('&','\&')
=> "a&b"
irb(main):003:0> "a&b".gsub('&','\\&')
=> "a&b"
irb(main):004:0> "a&b".gsub('&','\\\&')
=> "a\\&b"
irb(main):005:0> "a&b".gsub('&','\\\\&')
=> "a\\&b"

So it always inserts either zero or two \ characters, but never a single one. Not possible to generate "a\&b"


regards




-- 
http://bugs.ruby-lang.org/