stringhe racchiuse tra virgolette singole non di processo più sequenze di escape. Così, quando si ha questa "due stringa di caratteri, dove il primo carattere è backslash e secondo carattere è minuscolo 'n'"
'\n'
significa letteralmente. Fa non significa "carattere di nuova riga". Per fare in modo che \n
significhi newline char, devi metterlo all'interno di una stringa doppia citazione (che elabora questa sequenza di escape). Ecco alcuni esempi:
"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
NOTA quel carattere backslash in questo particolare esempio (seconda linea, utilizzando stringa di un unico citato in delete
chiamata) viene semplicemente ignorato, a causa della logica speciale nel metodo delete
. Vedere il documento su String#count per maggiori informazioni. Per ignorare ciò, utilizzare gsub
, ad esempio
'Remove \n'.gsub('\n', '') # => "Remove "
fonte
2013-06-16 10:29:51
Grazie Sergio. Forse sai come posso convertire i risultati ricevuti dal database, perché penso che siano tratati come nelle virgolette singole – Gediminas
Forse lo so. Ma questo è fuori portata qui :) –