분할하려는 문자열이 있습니다. D017209D019169D019014를 D017209, D019169 및 D019014에 쉼표로 묶습니다.쉬운 문자열 분할?
017209
019169
019014
내가 무엇을 놓치고 :처럼 나는
a = D017209D019169D019014
b = a.slice("D")
puts b
내 결과가있는 경우
보인다?
분할하려는 문자열이 있습니다. D017209D019169D019014를 D017209, D019169 및 D019014에 쉼표로 묶습니다.쉬운 문자열 분할?
017209
019169
019014
내가 무엇을 놓치고 :처럼 나는
a = D017209D019169D019014
b = a.slice("D")
puts b
내 결과가있는 경우
보인다?
"D017209D019169D019014".scan(/D[^D]*/)
Scan은 모든 일치 항목의 배열을 반환합니다. 여기서는 정확히 일치하는 항목을 반환합니다. 정규 표현식은 단순히 D를 의미하며 그 뒤에 0이 아닌 D가옵니다.
조인 추가 쉼표로 추가합니다. "D017209D019169D019014".scan (/ D [^ D] * /). 조인 (",")은 "D017209, DD019169, DD019014" –
문자열 분할 기능은 항상 종결자를 제거합니다. 'D'로 시작하는 하위 문자열을 원합니다. 나는 내 댓글 말했다 같이 정규식, BTW 여기
a.scan(/D[0-9]*/).each do |line|
#do stuff with each piece of data
end
가장 좋은 것입니다 나는 절대적으로하지 정규식 전문가도 좋은 정말입니다. 그래서, 누군가가 이걸 알게되면 내가 알기는하지만 입력 내용과 함께 작동해야합니다.
문자열 분할 기능은 항상 종결자를 제거합니다. 'D'로 시작하는 하위 문자열을 원합니다. 정규식은 여기에서 가장 좋겠지 만 정직하게는 내가 너무 자주 사용하여 내가 실수를 할 경우 (테스트 할 시간이 없을 때) 다른 사람이 대답을하도록 허용합니다 –
일반적인 경험 법칙 : 당신이 무엇을 알고있을 때'split'을 사용하십시오 당신이 무엇을 지키고 싶은지 안다면 정규식을 사용하십시오. –