如果我有这样的字符串:
"interpolated: #{1}, verbatim: #{dont_interpolate}"
如何仅转义第二个#{},使得输出如下所示:
=> interpolated: 1, verbatim: #{dont_interpolate}
我试过了:
"interpolated: #{1}, verbatim: #\{dont_interpolate\}"
但是我在#:
面前得到了一个额外的斜线interpolated: 1, verbatim: \#{dont_interpolate}
答案 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