Les chaînes de caractères mono-quotes ne traitent pas la plupart des séquences d'échappement. Ainsi, lorsque vous avez
'\n'
cela signifie littéralement "chaîne de deux caractères, où le premier caractère est une barre oblique inversée et le second un 'n' minuscule". Il fait no signifie "caractère de nouvelle ligne". Pour que \n
pour signifier le caractère de nouvelle ligne, vous devez le placer à l'intérieur d'une chaîne de caractères doublement citée (qui traite cette séquence d'échappement). Voici quelques exemples :
"Remove \n".delete('\n') # => "Remove \n" # doesn't match
'Remove \n'.delete('\n') # => "Remove \\" # see below
'Remove \n'.delete("\n") # => "Remove \\n" # no newline in source string
"Remove \n".delete("\n") # => "Remove " # properly removed
NOTE que le caractère backslash dans cet exemple particulier (deuxième ligne, en utilisant une chaîne de caractères entre guillemets en delete
) est tout simplement ignoré, en raison d'une logique spéciale dans l'application delete
méthode. Voir la doc sur Chaîne#count pour plus d'informations. Pour contourner ce problème, utilisez gsub
par exemple
'Remove \n'.gsub('\n', '') # => "Remove "