我正在尝试学习废弃这些值,我把它放在两个不同的任务:
- 从整个文本 中获取35.00
- 从整个文本 中获取42.00
下面是html:
<p style="font-size: 30px; margin-left: -10px; padding: 15px 0pt;">
$35.00 - $42.00
</p>
我用来获取整个文本的代码如下:
node = html_doc.at_css('p')
p node.text
你可以从node.text
获得整个文本,这就是你需要与Nokogiri一起去的地方。从那里,你可以使用scan
找到数字和一点列表争吵(flatten
和map
),你就完成了。像这样:
first, second = node.text.scan(/(d+(?:.d+))/).flatten.map(&:to_f)
这应该会让你在first
和second
中分别得到35.0和42.0
。如果您知道这些数字是带有小数的价格,那么您可以稍微简化一下正则表达式:
first, second = node.text.scan(/(d+.d+)/).flatten.map(&:to_f)
mu的答案是正确的,但使用split/splat似乎更简单。
first, second = *node.text.tr('$', '').split(' - ')