Ruby,如何在$符号后获取数字

时间:2017-10-02 18:33:11

标签: ruby

有一个数组:

price = ['$6.95', '$7', '$10.50'] 

我需要从中得到所有数字:6.95,7,10.50

price[0].match('\d+')[0].to_f

返回6.我希望6.95

1 个答案:

答案 0 :(得分:1)

['$6.95', '$7', '$10.50'].map { |price| price.match(/\d+\.?\d{0,2}/)[0].to_f } => [6.95, 7.0, 10.5]

这里的正则表达式支持任意数量的数字,可选的小数点和最多两个尾随数字(分)。如果您的价格中有逗号(例如$ 1,000),则需要在\d+部分更加聪明。