2012-02-29 10 views
2

La règle d'échappement pour une chaîne entre guillemets simples semble incohérente dans l'exemple suivant: Quelles sont exactement les règles que Ruby échappe à la chaîne de guillemets simples?Comportement d'échappement incohérent d'une chaîne de guillemets simples

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 

Répondre

3

entre guillemets simples cordes prennent en charge que deux séquences d'échappement:
\' - guillemet simple
\\ - backslash
À l'exception de ces deux séquences d'échappement, tout le reste entre guillemets simples est traité littéralement.

source: wikibooks

Questions connexes