字符串是
ex="test1, test2, test3, test4, test5"
当我使用
时ex.split(",").first
它返回
"test1"
现在我想得到剩下的项目,即`“test2,test3,test4,test5”。如果我使用
ex.split(",").last
只返回
"test5"
如何让所有剩余的项目首先跳过?
答案 0 :(得分:94)
试试这个:
first, *rest = ex.split(/, /)
现在first
将是第一个值,rest
将成为数组的其余部分。
答案 1 :(得分:41)
ex.split(',', 2).last
最后的2说:分成两部分,而不是更多。
通常拆分会将值切割成尽可能多的碎片,使用第二个值可以限制您将获得的碎片数量。使用ex.split(',', 2)
会给您:
["test1", "test2, test3, test4, test5"]
作为数组,而不是:
["test1", "test2", "test3", "test4", "test5"]
答案 2 :(得分:14)
由于你有一个数组,你真正想要的是Array#slice
,而不是split
。
rest = ex.slice(1 .. -1)
# or
rest = ex[1 .. -1]
答案 3 :(得分:9)
你可能输错了一些东西。从我收集的内容开始,您可以使用以下字符串开头:
string = "test1, test2, test3, test4, test5"
然后你想将它拆分为仅保留重要的子串:
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
这回答了你的问题吗?
答案 4 :(得分:5)
ex="test1,test2,test3,test4,test5"
all_but_first=ex.split(/,/)[1..-1]
答案 5 :(得分:5)
如果你想将它们用作你已经知道的数组,那么你可以将它们中的每一个用作不同的参数...... 试试这个:
parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")
答案 6 :(得分:5)
对不起,派对有点晚了,有点惊讶,没有人提到drop方法:
ex="test1, test2, test3, test4, test5"
ex.split(",").drop(1).join(",")
=> "test2,test3,test4,test5"
答案 7 :(得分:2)
你也可以这样做:
String is ex="test1, test2, test3, test4, test5"
array = ex.split(/,/)
array.size.times do |i|
p array[i]
end
答案 8 :(得分:0)
尝试split(",")[i]
其中i
是结果数组中的索引。 split
在
["test1", " test2", " test3", " test4", " test5"]
其元素可以通过索引访问。