我想解析最后一个印度货币,即字符串中的Rs。
例如:
卢比。或者Rs都没问题。我希望用Rs前面加上数字。或者Rs
如何解析此字符串。
答案 0 :(得分:5)
目标是最恰当的出现:
解决方案:
s = "Price for this item is Rs. 100.2 to 125.4"
s.scan(/Rs.? (\d+\.\d+|\d+)/).last
#=> 102.2
s = "Price for this item is Rs. 100.2 to Rs. 125.4"
s.scan(/Rs.? (\d+\.\d+|\d+)/).last
#=> 125.4
答案 1 :(得分:1)
我会使用像
这样的东西 price = "Price for item is Rs. 100".scan(/(\d+\.\d+|\d+)/).flatten.last
scan
方法返回一个包含所有匹配数字的数组(因为\d+
)。而你总是想要最后找到的真实的号码(声明四)你实际上想要数组中的最后一个元素。
这也将允许情况#3,你有浮动。