88 votes

ruby .split(') \n ') ne se sépare pas sur une nouvelle ligne

Pourquoi cette chaîne ne se divise-t-elle pas sur chaque " \n " ? (RUBY)

"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split('\n')
>> ["ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t"]

189voto

Mori Points 10767

Vous avez besoin .split("\n") . Une interpolation de la chaîne est nécessaire pour interpréter correctement la nouvelle ligne, et les guillemets doubles sont un moyen d'y parvenir.

42voto

jbr Points 3125

En Ruby, les guillemets simples autour d'une chaîne de caractères signifient que les caractères d'échappement ne sont pas interprétés. Contrairement à ce qui se passe en C, où les guillemets simples désignent un seul caractère. Dans ce cas '\n' est en fait équivalent à "\\n" .

Donc, si vous voulez vous séparer de \n vous devez modifier votre code pour utiliser des guillemets doubles.

.split("\n")

23voto

23inhouse Points 820

Ruby dispose des méthodes String#each_line y String#lines

renvoie une énumération : http://www.ruby-doc.org/core-1.9.3/String.html#method-i-each_line

renvoie un tableau : http://www.ruby-doc.org/core-2.1.2/String.html#method-i-lines

Je ne l'ai pas testé avec votre scénario, mais je parie que cela fonctionnera mieux que de choisir manuellement les caractères de retour à la ligne.

11voto

Swards Points 3017

Ou une expression régulière

.split(/\n/)

3voto

fotanus Points 6322

Vous ne pouvez pas utiliser de guillemets simples pour cela :

"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split("\n")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X