正则与价格和逗号

时间:2016-03-23 18:43:51

标签: ruby regex

我有"8 560,90 cur."。如何将整数8560作为整数?

我可以用逗号分割它,然后将[0]作为整数,询问是否有更多方法可以执行此操作。

2 个答案:

答案 0 :(得分:1)

"8 560,90 cur.".scan(/(\d*?).+?(\d+,\d\d)/).flatten.join.to_i
# => 8560
"sdwfdsf560,90 cur.".scan(/(\d*?).+?(\d+,\d\d)/).flatten.join.to_i
# => 560

答案 1 :(得分:1)

我是这样做的:

str = "8 560,90 cur."
str.gsub(/[^\d,]/, '').to_i
# => 8560

这将删除不是数字或逗号的每个字符,产生"8560,90",然后在其上调用to_i,这会产生8560。只要您希望第一个逗号之前的每个数字都成为数字的一部分,并且之后没有数字,这将适用于任何字符串。