= 12Splite 문자열과 정수
"ad15"=> 텍스트 = "광고", 값 = 15
"acbds1687"=> 텍스트 = "acbds", 값 = 1687
나는 정규 표현식이 문제를 해결할 수 있다고 생각하지만 확실하지 않다 정규 표현식에 대해.
= 12Splite 문자열과 정수
"ad15"=> 텍스트 = "광고", 값 = 15
"acbds1687"=> 텍스트 = "acbds", 값 = 1687
나는 정규 표현식이 문제를 해결할 수 있다고 생각하지만 확실하지 않다 정규 표현식에 대해.
아래처럼 :
irb(main):001:0> "t12".split(/(?<=[a-zA-Z])(?=\d)/)
=> ["t", "12"]
굉장 :) 매력처럼 작동합니다. –
이 { :text => "t", :value => 12 }
같은 해시로 문자열을 구문 분석하려면 :
def parse (string)
matchdata = string.match(/([a-zA-Z]+)([\d]+)/)
text = matchdata[1]
value = matchdata[2].to_i
return { text: text, value: value }
end
이 ["t", 12]
같은 배열로 문자열을 구문 분석 :
def parse (string)
matchdata = string.match(/([a-zA-Z]+)([\d]+)/)
text = matchdata[1]
value = matchdata[2].to_i
return [text, value]
end
당신이 만약 분할에 머물러있는 캡처 그룹을 만드십시오. 따라서이 코드는 꽤 매끈합니다 :
text, value = string.split(/(\d+)/)
또는 슬라이스! 메서드 :
text = 'sagasg125512'
value = text.slice!(/\d+/)
p text #=> "sagasg"
p value #=> "125512"
예제에서 문자열에는 공백이 없습니다. 독자는 이것이 요구 사항이라고 생각할 것이며 문제는 아닙니다. 그러나 좀 더 일반적인 해결책을 원한다면, 이제는 편집자가 제공 한 문자열의 예와 추출하려는 문자열의 예제를 추가하여 말할 수 있습니다. –
문자와 정수가 결합 된 문자열이 있는데이를 분할하려고합니다. 문제는 그것이 서로 나누기가 어렵고 각 문자열 요소를 세지 않고 싶다는 것입니다. –