80 votes

Comment utiliser String # split () en Ruby?

La chaîne est ex="test1, test2, test3, test4, test5"

quand j'utilise

 ex.split(",").first
 

il revient

 "test1"
 

Maintenant, je veux obtenir les éléments restants, à savoir `" test2, test3, test4, test5 ". Si j'utilise

 ex.split(",").last
 

il ne retourne que

 "test5"
 

Comment faire pour que les articles restants sautent en premier?

96voto

avdgaag Points 7277

Essaye ça:

 first, *rest = ex.split(/, /)
 

Maintenant, first sera la première valeur, rest sera le reste du tableau.

42voto

user163365 Points 666
 ex.split(',', 2).last
 

Le 2 à la fin dit: divisé en 2 morceaux, pas plus.

Normalement, split divisera la valeur en autant de pièces que possible. En utilisant une seconde valeur, vous pouvez limiter le nombre de pièces que vous obtiendrez. Utiliser ex.split(',', 2) vous donnera:

 ["test1", "test2, test3, test4, test5"]
 

sous forme de tableau, au lieu de:

 ["test1", "test2", "test3", "test4", "test5"]
 

14voto

Konrad Rudolph Points 231505

Puisque vous avez un tableau, vous voulez vraiment Array#slice , pas split .

 rest = ex.slice(1 .. -1)
# or
rest = ex[1 .. -1]
 

9voto

bltxd Points 4408

Vous avez probablement mal saisi certaines choses. D'après ce que je comprends, vous commencez avec une chaîne telle que:

 string = "test1, test2, test3, test4, test5"
 

Ensuite, vous voulez le scinder pour ne conserver que les sous-chaînes significatives:

 array = string.split(/, /)
 

Et à la fin, vous n’avez besoin que de tous les éléments, à l’exclusion du premier:

 # We extract and remove the first element from array
first_element = array.shift

# Now array contains the expected result, you can check it with
puts array.inspect
 

Est-ce que cela a répondu à votre question?

5voto

Jonas Elfström Points 16453
ex="test1,test2,test3,test4,test5"
all_but_first=ex.split(/,/)[1..-1]

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