Ruby gsub 替换值的单个反斜杠?

Single backslash for Ruby gsub replacement value?

有谁知道如何在 Ruby 的 gsub 方法中提供单个反斜杠作为替换值?我认为使用双反斜杠作为替换值会导致单个反斜杠,但结果是两个反斜杠。

示例:"a\b".gsub("\", "\")

结果:a\b

我使用块也得到了相同的结果:

示例:"a\b".gsub("\"){"\"}

结果:a\b

显然我不能使用单个反斜杠作为替换值,因为那样只会转义后面的引号。我也尝试过在替换值周围使用单引号(而不是双引号),但结果中仍然有两个反斜杠。

编辑:感谢评论者,我现在意识到我的困惑是 Rails 控制台如何报告操作结果(即 a\b)。尽管字符串 'a\b''a\b' 看起来不同,但它们的长度相同:

'a\b'.length (3)

'a\b'.length (3)

您可以用 "\"'\' 表示单个反斜杠。在 irb 中试试这个,其中

 "\".size

正确输出了1,说明你确实在这个字符串中只有一个字符,而不是你想的2个。你也可以做一个

 puts "\" 

同样,你的例子

puts("a\b".gsub("\", "\"))

正确打印

a\b