두 개의 다른 태그에 대한 문자열을 구문 분석하고 각각을 데이터베이스에 저장하고 싶습니다. 이 tag1과 tag2를 호출 해 봅시다. 나는 delimeter를 가지고 있는데, "? #"는 tag1과 tag2 사이의 분리입니다.Ruby에서 문자열을 파싱 한 다음 데이터베이스에 저장
한다고 가정
t = "random text blah firsttag?#secondtag more blah"
목표 : tag1로는 "firsttag"해야하며, tag2로는 선행 또는 후행 임의의 텍스트없이 "secondtag"이어야합니다. 각각은 데이터베이스에 객체로 저장되어야합니다.
내가 좋아하는 뭔가를 시도 :t.split
을하지만
["random text blah firsttag", "secondtag more blah"]
를 반환하고 임의의 텍스트가 포함되어 있습니다. 어느 방향 으로든 첫 번째 공간에 도달하면 분할을 중지하려면 어떻게합니까?
나는 문자열에 여러 태그 쌍이있는 경우 경우에도, 예를 들어, 일이 싶습니다 : 나는 루비와 레일 모두에 아주 새로운 해요
m = "random firsttag#?secondtag blah blah 1sttag#?2ndtag blah blah blah"
, 그래서 정말 감사 당신의 이것에 대한 도움!
이 먼저의가 tag?#tag2
있는 텍스트의 흥미로운 부분을 캡처 할 수
tags = t.match(/\S+\?#\S+/)[0].split('?#')
설명 :
고마워요. 파블로, 내가 도움이되는 정규식 워크 스루를 발견했습니다! – s2t2
괜찮습니다! 건배 –
후속 질문 : 데이터베이스에 파싱 된 스 니펫을 어떻게 저장할 수 있습니까? 구체적으로 말하자면 트위터 보석을 사용하여 데이터베이스에 트윗을 다시 저장하고 저장합니다.위에 설명 된 방식으로 트윗을 파싱하고 스 니펫을 인스턴스로 생성하여 내가 만든 관련 객체 클래스에 저장할 수 있기를 원합니다. 어떤 아이디어? – s2t2