8

请帮我处理下一个任务的正则表达式:我在某个表中有一个“成本”列,但那里的值不同:

['1.22','1,22','$1.22','1,22$','$ 1.22']

我需要删除除digitsand,和之外的每个字符.。所以我需要得到一个总是可以解析为浮点数的值。

4

6 回答 6

14
a.map {|i| i.gsub(/[^\d,\.]/, '')}
# => ["1.22", "1,22", "1.22", "1,22", "1.22"] 
于 2013-07-27T15:43:27.147 回答
12

尝试这个:

yourStr.gsub(/[^0-9,.]/, "")
于 2013-07-27T15:41:37.930 回答
1

要提取数字:

a = ["1.22", "1,22", "$1.22", "1,22$", "$ 1.22"]
a.map {|s| s[/[\d.,]+/] }
#=> ["1.22", "1,22", "1.22", "1,22", "1.22"]

假设逗号,应该被视为小数点.(如'1,22'-> 1.22),这应该将您的值转换为浮点数:

a = ["1.22", "1,22", "$1.22", "1,22$", "$ 1.22"]
a.map {|s| s[/[\d.,]+/].gsub(',','.').to_f }
#=> [1.22, 1.22, 1.22, 1.22, 1.22]
于 2013-07-27T15:38:39.053 回答
0

你可以替换所有的空白,全部'$'''

于 2013-07-27T15:34:48.157 回答
0

另一个:

a= ['1.22','1,22','$1.22','1,22$','$ 1.22']
a.map{|i| i[/\d+.\d+/]}
# => ["1.22", "1,22", "1.22", "1,22", "1.22"]
于 2013-07-27T16:33:39.023 回答
-1
str = "a1234c324ee4r"    
str.delete("^0-9")

它从字符串中删除所有字符并返回所有整数

于 2020-05-07T18:11:29.557 回答