输出中的转义换行符

时间:2013-06-26 17:05:16

标签: ruby irb ruby-1.8.7

在Ruby 1.8.7上的IRB中,我有一组我正在使用的字符串,其中包含换行符。输出这些换行符后,我想明确查看字符串中的\r\n个字符。是否有某种方法可以告诉puts逃避这些字符,或类似于puts的方法可以做我想做的事情?

请注意,直接评估每个字符串并不令人满意,因为我希望能够做到这样的事情:

=> mystrings.each { |str| puts str.magical_method_to_escape_special_chars }
This is\na string in mystrings.
This is another\n\rstring.

并且不想这样做:

=> mystrings[0]
"This is\na string in mystrings."
=> mystrings[1]
"This is another\n\rstring."
...
=> mystrings[1000]
"There are a lot of\n\nstrings!"

2 个答案:

答案 0 :(得分:2)

1.8.7 :001 > s = "hi\nthere"
 => "hi\nthere" 
1.8.7 :002 > p s
"hi\nthere"

答案 1 :(得分:2)

我可以使用string#dump方法:

=> mystrings.each { |str| puts str.dump }
This is\na string in mystrings.
This is another\n\rstring.

根据Ruby documention for Stringstring#dump

  

生成一个str版本,替换为所有非打印字符   \ nnn表示法和所有特殊字符都逃脱了。