ruby-on-rails - Rails 去除除数字逗号和小数点以外的所有内容

标签 ruby-on-rails ruby

嗨,过去一个小时我一直在努力解决这个问题,但离我还很近。如何从 Rails 字符串中去除除数字、逗号和小数点以外的所有内容?到目前为止我最接近的是:-

rate = rate.gsub!(/[^0-9]/i, '')

这会去掉除数字以外的所有内容。当我尝试在表达式中添加逗号时,所有内容都被删除了。据我所知,我从其他地方得到了以上信息:

^ = 不

逗号左侧的所有内容都将替换为右侧“”中的内容

不知道/i 是做什么的

我是 gsub 的新手。有人知道有关构建表达式的好教程吗?

谢谢

最佳答案

尝试:

rate = rate.gsub(/[^0-9,\.]/, '')

基本上,您知道 ^ 的意思不是在您正在使用的字符类括号内 [],然后您可以将逗号添加到列表中。小数点需要用反斜杠转义,因为在正则表达式中它们是一个特殊字符,表示“匹配任何内容”。

此外,请注意您使用的是 gsub 还是 gsub!

gsub! 有爆炸声,所以它会编辑您传入的字符串的实例,而不是返回另一个字符串。

所以如果使用 gsub! 它将是:

rate.gsub!(/[^0-9,\.]/, '')

并且 rate 会被改变。

如果你不想改变原始变量,那么你可以使用没有爆炸的版本(并将它分配给不同的 var):

cleaned_rate = rate.gsub!(/[^0-9,\.]/, '')

我只是用谷歌搜索教程。我一个都没用过。正则表达式需要大量时间和反复试验(以及翻 table )。

这是一个很酷的工具,上面有一个用于 ruby​​ 的迷你备忘单,可以让您快速编辑和测试您的表达式:

http://rubular.com/

关于ruby-on-rails - Rails 去除除数字逗号和小数点以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28907816/

相关文章:

ruby-on-rails - 不显示带有 Carrierwave 的图像

ruby-on-rails - Rails,构建 :css script prevents --watch from working 中的多个 css 输出

html - 使用 mechanize 从 HTML 表中提取数据

ruby - 在 Ruby 初始化器上将哈希参数转换为实例变量

ruby-on-rails - 超薄文本中的换行符

ruby-on-rails - Rails 路由逻辑

ruby-on-rails - 如何使用 Rails 在浏览器的时区中显示日期时间?

ruby - 在 IRB 或 Rails 控制台中启用后如何禁用 awesome_print?

ruby-on-rails - bundler 不工作 : in `[]' : undefined method `[]' for false:FalseClass

ruby - Ruby 中数组上的 Each_Slice