如何根据前面的Nokogiri文本从HTML段落中提取价格

时间:2014-12-16 02:53:55

标签: ruby nokogiri

我正试图从段落中剔除价格并将其存储在Nokogiri的数据库中。该段看起来像这样:

<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 ')

会给value1一个'50 .00'的值。

1 个答案:

答案 0 :(得分: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"]

与Philip Hallstrom建议的scan一样使用也很好。