我正在使用Rails和Nokogiri,我正在尝试解析一些网站 这就是我被困住的地方:
doc.css('#example > li:nth-child(1)').each do |node|
money = node.xpath('//*ul/li/div/span').text
end
它返回类似:
$100,000£230,000$40,000$9,000€600$800,000
我想拆分这些项目,将它们保存到数据库中,最后将它们交给视图。
因此,在视图中,我希望它看起来像:
(1)$ 100,000个
(2)£230000
(3)$ 40,000个
(4)$ 9,000名
(5)€600
(6)$ 800,000
我试图通过以下代码拆分这些项目。
money = node.xpath('//*ul/li/div/span').text.split(/[$€£]/)
但结果如下:
["", "100,000", "230,000", "40,000", "9,000", "600", "800,000"]
我不知道哪个项目是美元,欧元或池塘 有什么好方法可以解决这个问题吗?
答案 0 :(得分:2)
irb(main):005:0> "$100,000£230,000$40,000$9,000€600$800,000".split(/(?=[$£€])/)
=> ["$100,000", "£230,000", "$40,000", "$9,000", "€600", "$800,000"]
答案 1 :(得分:1)
需要正则表达式。这有效:
"$100,000£230,000$40,000$9,000$600$800,000".scan(/([^\d][0-9,]+)/)
=> [["$100,000"],
["£230,000"],
["$40,000"],
["$9,000"],
["$600"],
["$800,000"]]
正则表达式包含以下部分:
[^\d]
:匹配单个非数字的字符类。这将与货币符号匹配。