Ruby反斜杠转义:'\\ \ hline'为字符串

时间:2018-06-07 13:05:11

标签: ruby string escaping

我正在尝试简单地使用字符串

 '\\ \hline'

在我的程序中。 现在我使用单引号,所以我希望

 a = ' \\ \hline'

给我我想要的东西,而不是

 irb(main):001:0> a = ' \\ \hline'
 => " \\ \\hline"

我怎么会得到我想要的东西,因为我不知道意外的第二次双反斜杠?

编辑:与a = "\"

类似

1 个答案:

答案 0 :(得分:3)

您可能必须逃避所有反斜杠:

str = "\\\\ \\hline"
puts str
# => \\ \hline

请注意,如果您使用单引号字符串并且只转义单个反斜杠,它也会起作用:

str = '\\\\ \hline'
puts str
# => \\ \hline

并且如果你的反斜杠在某些看起来像可以转义的char的东西之前:

str = '\\\\ \nline'
puts str
# => \\ \nline

但如果您使用双引号则不是这样:

str = "\\\\ \nline"
puts str
# => \\ 
# => line

所有反斜杠的转义不是强制性的(正如@mudasobwa正确指出的那样)并且在某些情况下您可能决定不使用它,但恕我直言,这是优选的,特别是如果你使用带双引号的字符串。