3

在 Ruby 1.8.7 上的 IRB 中,我有一组正在使用的字符串,其中包含换行符。当输出这些换行符时,我想明确地查看字符串中的\rand\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!"
4

2 回答 2

6

我可以使用以下string#dump方法:

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

根据String 的 Ruby 文档string#dump

生成一个 str 版本,其中所有非打印字符都被 \nnn 表示法替换,所有特殊字符都被转义。

于 2013-06-26T17:11:46.360 回答
2
1.8.7 :001 > s = "hi\nthere"
 => "hi\nthere" 
1.8.7 :002 > p s
"hi\nthere"
于 2013-06-26T17:10:08.463 回答