From: "shyouhei (Shyouhei Urabe)" Date: 2012-05-21T09:09:15+09:00 Subject: [ruby-core:45161] [ruby-trunk - Bug #6474][Closed] Substitution bug in String # gsub Issue #6474 has been updated by shyouhei (Shyouhei Urabe). Status changed from Open to Closed As Mike said backslashes are escaped in double-quoted strings. ---------------------------------------- Bug #6474: Substitution bug in String # gsub https://bugs.ruby-lang.org/issues/6474#change-26734 Author: hadmut (Hadmut Danisch) Status: Closed 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/