我有一个字符串str = "xyz\123"
,我想按原样打印它。
IRB给了我意想不到的输出。请在下面找到相同的内容: -
1.9.2p290 :003 > str = "xyz\123"
=> "xyzS"
1.9.2p290 :004 >
关于如何让IRB打印原始字符串即“xyz \ 123”的任何想法。
谢谢..
更新:
我试图逃避它,但由于某种原因它似乎并不那么简单。请在下面找到我的试用版:
1.9.2p290 :004 > str = "xyz'\'123"
=> "xyz''123"
1.9.2p290 :005 > str = "xyz'\\'123"
=> "xyz'\\'123"
1.9.2p290 :006 > str = "xyz'\\\'123"
=> "xyz'\\'123"
1.9.2p290 :007 >
答案 0 :(得分:5)
更新回答:
转义标记'\'始终使用普通的ruby代码,但并不总是在“ruby控制台”中工作。所以我建议你写一个单元测试:
# escape_token_test.rb
require 'test/unit'
class EscapeTokenTest < Test::Unit::TestCase
def test_how_to_escape
hi = "hi\\backslash"
puts hi
end
end
你会得到结果:
hi\backslash
并查看@ pst的评论。
答案 1 :(得分:3)
反斜杠字符是转义字符。您可能已经看到“\ n”用于显示新行,这就是原因。 “\ 123”表示83的ASCII码,即“S”。要打印反斜杠,请使用2个反斜杠。所以你可以使用str = "xyz\\123"
。
答案 2 :(得分:-1)
这很简单...尝试转储功能:
mystring = %Q{"Double Quotes"}
p mystring.dump
=> "\"\\\"Double Quotes\\\"\""
p mystring
=>"\"Double Quotes\""