"{john:123456}"
로는 :
"<script src='https://gist.github.com/john/123456.js'>"
나는 작동하는 방법을 썼다, 그러나 그것은 아주 어리 석다. 그것은 다음과 같이이다 :
def convert
args = []
self.scan(/{([a-zA-Z0-9\-_]+):(\d+)}/) {|x| args << x}
args.each do |pair|
name = pair[0]
id = pair[1]
self.gsub!("{" + name + ":" + id + "}", "<script src='https://gist.github.com/#{name}/#{id}.js'></script>")
end
self
end
는 아래 사항을 cool_method
처럼이 할 수있는 방법이 있나요?
"{john:123}".cool_method(/{([a-zA-Z0-9\-_]+):(\d+)}/, "<script src='https://gist.github.com/$1/$2.js'></script>")
어딘가에서 JSON으로 들어오는 경우 JSON 만 사용합니다. 그리고 정규식 솔루션은 "좋은"반면, 나는 여전히 분할 및 절단/결과 값의 색인 생성을 고려할 것입니다. –
+1 @DaveNewton. 들어오는 데이터 문자열은 JSON이므로 첫 번째 단계는 객체 형식으로 다시 설정 한 다음 마사지하는 것입니다. JSON을 Regex로 구문 분석하면 잘못 처리 될 수 있습니다. 해시 또는 배열에서 값을 마사지하는 것은 큰 호황을 누릴 가능성이 적습니다. –
항상 하나의 이름/값만 있거나 여러 항목을받을 수 있습니까? 그리고 문자열''{john : 123456} ''입니까 아니면 정말''{{ "john": 123456} "입니까? –