从字符串中提取浮点值或整数值

时间:2017-02-21 14:25:51

标签: ruby regex

我一直在寻找如何实现我想要的东西。我已经看到了答案,但没有找到我想要的答案:

str = "hello £25,500.98 and $5656.99"
str.match(/\d+\.\d+/)[0] # => "500.98". Close but not what I want.

str.scan(/\d/).join('') # Seems to combine all numbers - no.

我希望得到 25500.98。最后一位数后的任何内容都将被丢弃(希望我在这里有意义)。我是正则表达式的垃圾。我想我已经在rails控制台中尝试了很多变化,但除了str.match(/\d+\.\d+/)[0]

之外什么都没有

2 个答案:

答案 0 :(得分:1)

只需在匹配前删除逗号:

str.delete(',').match(/\d+\.\d+/)[0]

答案 1 :(得分:0)

试试regexp:

str.scan(/[£$]\d+,\d+\.\d+|\d+\.\d+|\d+/).each{|item| item.gsub!(/[£$,]/, '')}
div

Example