2014-12-16 2 views
0

단락에서 가격을 긁어 내고 Nokogiri로 데이터베이스에 저장하려고합니다. 문단은 다음과 같습니다.Nokogiri로 이전 텍스트를 기반으로 HTML 단락에서 가격을 긁는 방법

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    Sed elit nisi, tincidunt id purus vitae, imperdiet 
    vulputate diam 50.00, imperdiet vulputate diam 100.00 ...</p> 

텍스트는 항상 각 단락에서 동일하지만 숫자 만 변경됩니다. Nokogiri를 사용하여 CSS 선택기로 전체 단락을 선택하는 방법을 알고 있지만 앞의 텍스트를 기반으로 단락에서 각 가격을 선택하는 방법이 있습니까? 예 :

value1 = doc.?('vulputate diam ') 

값 1에 값이 '00 .00 '이됩니다.

답변

0

단락 결과에서 정규식 일치를 사용할 수 있습니다. .match(/vulputate diam ([\d\.]+)/)

x = "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elit nisi, tincidunt id purus vitae, imperdiet vulputate diam 50.00, imperdiet vulputate diam 100.00 ...</p>".match(/vulputate diam ([\d\.]+)/) 
x.captures 
# => ["50.00"] 

또한 필립 할스트롬이 제안 scan와 같은 사용은 중대하다.

+2

또는'[[ "50.00"], [ "100.00"]]' –

+0

을 반환하는 str.scan (/ vulputate diam ([\ d.] +) /)'두 답변 모두 훌륭하게 작동합니다. 고맙습니다! – sma