문자열은
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는 다음과 같이 말합니다.
일반적으로 분할은 값을 가능한 한 많은 조각으로 자르고 두 번째 값을 사용하여 얻을 수있는 조각 수를 제한 할 수 있습니다. 사용하면 다음 ex.split(',', 2)
을 얻을 수 있습니다.
["test1", "test2, test3, test4, test5"]
대신 배열로 :
["test1", "test2", "test3", "test4", "test5"]
split
첫 번째 값을 제외한 모든 값을 문자열이 아닌 배열로 원하면 다시해야한다는 것입니다. 여전히 좋은 속임수입니다. 또한 using 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
있습니까?