如何在 Ruby 中拆分一个字符串并获得除第一个之外的所有项?

字符串是 ex="test1, test2, test3, test4, test5"

当我吸毒的时候

ex.split(",").first

它回来了

"test1"

现在我想得到剩下的项,即“ test2,test3,test4,test5”

ex.split(",").last

它只会回来

"test5"

如何让所有剩余的项目跳过第一个?

155857 次浏览

Try this:

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

Now first will be the first value, rest will be the rest of the array.

Since you've got an array, what you really want is Array#slice, not split.

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

You probably mistyped a few things. From what I gather, you start with a string such as:

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

Then you want to split it to keep only the significant substrings:

array = string.split(/, /)

And in the end you only need all the elements excluding the first one:

# 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

Did that answer your question ?

ex="test1,test2,test3,test4,test5"
all_but_first=ex.split(/,/)[1..-1]
ex.split(',', 2).last

The 2 at the end says: split into 2 pieces, not more.

normally split will cut the value into as many pieces as it can, using a second value you can limit how many pieces you will get. Using ex.split(',', 2) will give you:

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

as an array, instead of:

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

if u want to use them as an array u already knew, else u can use every one of them as a different parameter ... try this :

parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")

Sorry a bit late to the party and a bit surprised that nobody mentioned the drop method:

ex="test1, test2, test3, test4, test5"
ex.split(",").drop(1).join(",")
=> "test2,test3,test4,test5"

You can also do this:

String is ex="test1, test2, test3, test4, test5"
array = ex.split(/,/)
array.size.times do |i|
p array[i]
end

Try split(",")[i] where i is the index in result array. split gives array below

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

whose element can be accessed by index.