如何在Ruby中拆分string并获取除第一个以外的所有项目?
string是ex="test1, test2, test3, test4, test5"
当我使用
ex.split(",").first
它返回
"test1"
现在我想得到剩下的东西,比如“test2,test3,test4,test5“。 如果我使用
ex.split(",").last
它只返回
"test5"
如何让所有剩余的项目跳过第一个?
尝试这个:
first, *rest = ex.split(/, /)
现在first
将是第一个值, rest
将是数组的其余部分。
ex.split(',', 2).last
2最后说:分成2件,不多。
通常情况下,分割会将值减less到尽可能多的数量,使用第二个值可以限制您将得到的数量。 使用ex.split(',', 2)
会给你:
["test1", "test2, test3, test4, test5"]
作为一个数组,而不是:
["test1", "test2", "test3", "test4", "test5"]
既然你有一个数组,你真正想要的是Array#slice
,而不是split
。
rest = ex.slice(1 .. -1) # or rest = ex[1 .. -1]
你可能错误地input了一些东西。 从我收集到的,你从一个string开始,例如:
string = "test1, test2, test3, test4, test5"
那么你想分割它只保留重要的子string:
array = string.split(/, /)
最后你只需要除了第一个元素之外的所有元素:
# 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
这是否回答你的问题?
ex="test1,test2,test3,test4,test5" all_but_first=ex.split(/,/)[1..-1]
对不起晚了一点,有点惊讶,没有人提到滴的方法:
ex="test1, test2, test3, test4, test5" ex.split(",").drop(1).join(",") => "test2,test3,test4,test5"
如果你想使用它们作为你已经知道的数组,否则你可以使用它们中的每一个作为不同的参数…试试这个:
parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")
你也可以这样做:
String is ex="test1, test2, test3, test4, test5" array = ex.split(/,/) array.size.times do |i| p array[i] end