有一个数组:
price = ['$6.95', '$7', '$10.50']
我需要从中得到所有数字:6.95,7,10.50
price[0].match('\d+')[0].to_f
返回6.我希望6.95
答案 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+
部分更加聪明。