文字列は
ex="test1, test2, test3, test4, test5"
使うとき
ex.split(",").first
戻ります
"test1"
次に、残りのアイテム、つまり「test2、test3、test4、test5」を取得します。使用する場合
ex.split(",").last
戻るだけです
"test5"
最初のアイテムをスキップして残りのすべてのアイテムを取得するにはどうすればよいですか?
回答:
これを試して:
first, *rest = ex.split(/, /)
これfirst
が最初の値にrest
なり、配列の残りの値になります。
rest
「test2」しか含まれていません。
first,*rest = ex.split(/,/)
first, *rest = ex.split(/,/)
確かに私が意味したことでした。それを片付けてくれてありがとう。
things = ex.split(/,/); things[1..-1]
ex.split(',', 2).last
最後の2は、次のように述べています。2つに分割し、それ以上ではありません。
通常、splitは値を可能な限り多くの部分にカットし、2番目の値を使用して、取得する部分の数を制限できます。を使用ex.split(',', 2)
すると、次のようになります。
["test1", "test2, test3, test4, test5"]
代わりに、配列として:
["test1", "test2", "test3", "test4", "test5"]
split
、最初の値を除くすべてを文字列ではなく配列として使用する必要がある場合です。それでもいいトリックです。また、を使用ex.split(',', 2).last
すると、言及した配列は返されず、最後の値のみが返されますよね?
配列があるので、本当に必要なのはArray#slice
、ではなくsplit
です。
rest = ex.slice(1 .. -1)
# or
rest = ex[1 .. -1]
ex.split(/, /).slice(1..-1)
、最初の値に関心がないと仮定して、最初の要素を除くすべてを取得する必要があります。
あなたはおそらくいくつかのことをタイプミスしました。私が収集したものから、次のような文字列から始めます。
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
それはあなたの質問に答えましたか?
ex="test1,test2,test3,test4,test5"
all_but_first=ex.split(/,/)[1..-1]
split
(String
メソッド)を使用していArray
ます