Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中使用反斜杠打印字符串_Ruby_String_Irb_Ruby 1.9.2_Backslash - Fatal编程技术网

如何在Ruby中使用反斜杠打印字符串

如何在Ruby中使用反斜杠打印字符串,ruby,string,irb,ruby-1.9.2,backslash,Ruby,String,Irb,Ruby 1.9.2,Backslash,我有一个字符串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" =&g

我有一个字符串
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 > 
最新答复:

转义标记“\”总是在普通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

请参阅@pst的注释。

反斜杠字符是转义字符。您可能看到“\n”用于显示新行,这就是原因。“\123”计算83的ASCII码,即“S”。要打印反斜杠,请使用2个反斜杠。因此,您可以使用
str=“xyz\\123”
如何打印反斜杠?

使用两个反斜杠,例如
“xyz\\123”

为什么
“xyz\123”
计算为
“xyzS”

在双引号字符串中,
\nnn
是一个八进制转义

Thomas,D.(2009)Ruby编程,第329页

所以,八进制123
=(64*1)+(8*2)+3
=十进制83

=ASCII
S

很简单。。。尝试转储功能:

mystring = %Q{"Double Quotes"}
p mystring.dump
=> "\"\\\"Double Quotes\\\"\""
p mystring
=>"\"Double Quotes\""

“逃避它”或“阅读教程”。选一个。你可能还需要
.inspect
。我想知道为什么这个问题被否决了。我试过了,它不起作用。它将反斜杠打印两次。输出:“xyz\\123”@boddhisattva,这是正确的,因为REPL打印
。检查
表单,对于字符串,它是双引号表单,可以“求值”回原始对象的等效形式。尝试:
放置str
并进行比较。@pst谢谢。。现在工作。。所以这只是Rails控制台和IRB中的情况。。它不会像“puts str”那样打印?我试过了,它不起作用。它将反斜杠打印两次。输出:“xyz\\123”@boddhisattva,正确无误。请参阅Hophat答案下的我的评论。这与打印反斜杠有什么关系?
mystring = %Q{"Double Quotes"}
p mystring.dump
=> "\"\\\"Double Quotes\\\"\""
p mystring
=>"\"Double Quotes\""