[ruby] Ruby에서 문자열을 분할하고 첫 번째 항목을 제외한 모든 항목을 가져 오는 방법은 무엇입니까?

문자열은
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는 다음과 같이 말합니다.

일반적으로 분할은 값을 가능한 한 많은 조각으로 자르고 두 번째 값을 사용하여 얻을 수있는 조각 수를 제한 할 수 있습니다. 사용하면 다음 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]


답변

아마도 몇 가지를 잘못 입력했을 것입니다. 내가 수집 한 내용에서 다음과 같은 문자열로 시작합니다.

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]


답변

파티에 조금 늦게 미안하고 아무도 드롭 방법을 언급하지 않은 것에 약간 놀랐습니다 .

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


답변

이미 알고있는 배열로 사용하려는 경우 다른 매개 변수로 모두 사용할 수 있습니다.

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