Ruby on rails 为rails编写正则表达式的最佳方法是什么

Ruby on rails 为rails编写正则表达式的最佳方法是什么,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我有一个RubyonRails正则表达式,如下所示 str = "1,890.89" str[/[0-9\.]+/i] 我想把这个转换成 => 1890.89 # Removing the comma 所以我创建了一个类似这样的正则表达式 [/[0-9\.]+/i] => 1 然后在字符串中添加如下内容 str = "1,890.89" str[/[0-9\.]+/i] 期待结果 => 1890.89 但结果是这样的 [/[0-9\.]+/i] => 1

我有一个RubyonRails正则表达式,如下所示

str = "1,890.89"
str[/[0-9\.]+/i]
我想把这个转换成

=> 1890.89 # Removing the comma
所以我创建了一个类似这样的正则表达式

[/[0-9\.]+/i]
=> 1
然后在字符串中添加如下内容

str = "1,890.89"
str[/[0-9\.]+/i]
期待结果

=> 1890.89
但结果是这样的

[/[0-9\.]+/i]
=> 1
其余数字和点不包括在内

只是想让你知道我在这里试过正则表达式

我正在使用

ruby '2.4.0'
gem 'rails', '~> 5.1.4'

正如@revo所评论的,您需要执行以下两个步骤来删除逗号,然后连接结果:

str.scan(/[0-9\.]+/i).join()
如果只需要删除逗号,也可以不使用正则表达式:

str.gsub(',', '')

由于它是一个字符串,您需要删除逗号,所以不需要正则表达式,只需使用delete方法即可


为什么你需要正则表达式?我需要正则表达式,因为我正在抓取一个价格,并将其放在我的数据库中,而不需要commaThis。这是一个两步过程。匹配逗号分隔的数字,然后从匹配项中去掉逗号。您的意思是先拆分,然后再合并。使用str.delete',“为什么我们需要gsub?”?简单的delete方法可以完成这项工作。@Rajagopalan这两种方法都可以完成,但delete将删除所有出现的字符串,但gsub为您提供了更多的控制,让您在特定场景中包括regex以删除第一次出现的字符串,所有发生也有货币符号和货币符号我知道,但对于给定的条件,删除就足够了。实际上字符串来自我所在的网站scraping@Ruel不,那有什么问题?对从web接收的字符串对象调用delete方法。