我一直在寻找如何实现我想要的东西。我已经看到了答案,但没有找到我想要的答案:
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]
答案 0 :(得分:1)
只需在匹配前删除逗号:
str.delete(',').match(/\d+\.\d+/)[0]
答案 1 :(得分:0)
试试regexp:
str.scan(/[£$]\d+,\d+\.\d+|\d+\.\d+|\d+/).each{|item| item.gsub!(/[£$,]/, '')}
div