8 votes

Séparer une chaîne de caractères par les espaces blancs mais conserver \n - Rubis

J'ai un fichier ruby qui lit les fichiers et divise le texte dans un tableau en utilisant les éléments suivants split(' ') . Le problème est que ces fichiers texte contiennent des caractères de nouvelle ligne, et je voudrais conserver ces caractères de nouvelle ligne. Par exemple, si j'exécute le code suivant

"Lorem ipsum\ndolor sit amet".split(' ')

J'obtiens le résultat suivant

["Lorem", "ipsum", "dolor", "sit", "amet"]

Pourquoi split supprime-t-il le caractère de nouvelle ligne ? Comment puis-je conserver \n dans mon tableau ?

14voto

Ryan Bigg Points 64561

Le commentaire de Michael Berkowski sur votre question est correct.

Si vous voulez contourner ce cas, utilisez une expression régulière :

"Lorem ipsum\ndolor sit amet".split(/ /)
#=> ["Lorem", "ipsum\ndolor", "sit", "amet"]

0voto

aschyiel Points 56

En répétant la réponse de Ryan Bigg, il semble que vous pouvez utiliser Regex avec des groupes de capture pour conserver spécifiquement les nouvelles lignes.

"Lorem ipsum\ndolor sit amet".split(/ |([\t\r\n\f])/)
=> ["Lorem", "ipsum", "\n", "dolor", "sit", "amet"]

Inspiré par le commentaire de yonosoytu dans Chaîne#split

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