0

重複の可能性:
文字列補間から #{ をエスケープするにはどうすればよいですか

次のような文字列がある場合:

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

出力が次のようになるように、2 番目の #{} のみをエスケープするにはどうすればよいですか。

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

私はこれを試しました:

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

しかし、#: の前に余分なスラッシュが付きます:

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

1 に答える 1

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
于 2013-01-26T02:42:38.567 に答える