2009-03-03 5 views
5

Je trouve la fonction each de Ruby un peu déroutante. Si j'ai une ligne de texte, une boucle each me donnera chaque mot délimité par un espace plutôt que chaque caractère individuel.Comment analyser une ligne de texte séparée par des tabulations dans Ruby?

Alors, quelle est la meilleure façon de récupérer des sections de la chaîne qui sont délimitées par un caractère de tabulation. Pour le moment j'ai:

line.split.each do |word| 
... 
end 

mais ce n'est pas tout à fait correct.

Répondre

16

Je ne suis pas sûr que je comprends bien votre question, mais si vous voulez diviser les lignes de caractères de tabulation, vous pouvez spécifier que comme argument pour diviser:

line.split("\t").each ... 

ou vous pouvez spécifier comme une expression régulière:

line.split(/\t/).each ... 

Chaque fondamentalement juste par tous les itère éléments d'un tableau, et divisé produit un tableau à partir d'une chaîne.

+0

C'est bon pour un boîtier simple. Mais n'est * pas * simple. Il existe un certain nombre de cas de bords lorsque le contenu provient d'une source externe. Les nouvelles lignes, les séquences d'échappement, les citations, etc. sont si différentes entre différentes applications. –

Questions connexes