单引号字符串的转义行为不一致

时间:2012-02-29 14:56:05

标签: ruby string escaping

单引号字符串的转义规则在以下示例中看起来不一致: Ruby转义单引号字符串的确切规则是什么?

p str1 = 'a\b\c'
#=> "a\\b\\c" looks fine, I know single quotes don't do escaping
p str2 = 'a\\b\\c'
#=> "a\\b\\c" hmm? It actually escapes

# Trying double quotes
p str3 = "a\b\c" 
#=> Error, \c isn't valid
p str4 = "a\\b\\c"
#=> "a\\b\\c" 

p str1 == str4, str2 == str4
# true, true

1 个答案:

答案 0 :(得分:3)

单引号字符串仅支持两个转义序列:
\' - 单引号
\\ - 单反斜杠
除了这两个转义序列之外,单引号之间的所有其他内容都按字面处理。

来源:wikibooks