Escape ruby​​字符串插值语法

时间:2013-01-26 02:35:18

标签: ruby ruby-1.8

  

可能重复:
  How do I escape #{ from string interpolation

如果我有这样的字符串:

"interpolated: #{1}, verbatim: #{dont_interpolate}"

如何仅转义第二个#{},使得输出如下所示:

=> interpolated: 1, verbatim: #{dont_interpolate}

我试过了:

 "interpolated: #{1}, verbatim: #\{dont_interpolate\}"

但是我在#:

面前得到了一个额外的斜线
interpolated: 1, verbatim: \#{dont_interpolate}

1 个答案:

答案 0 :(得分:0)

我认为这只是在irb打印字符串。当我使用puts时,它会正确打印:

irb(main):002:0> "interpolated: #{1}, verbatim: #\{dont_interpolate\}".to_s
=> "interpolated: 1, verbatim: \#{dont_interpolate}"
irb(main):003:0> puts "interpolated: #{1}, verbatim: #\{dont_interpolate\}"
interpolated: 1, verbatim: #{dont_interpolate}
=> nil

看来你也可以这样逃避:

irb(main):004:0> puts "interpolated: #{1}, verbatim: \#{dont_interpolate}"
interpolated: 1, verbatim: #{dont_interpolate}
=> nil