嗨,我在这件事上挣扎了一个小时,再也不能靠近了如何从rails字符串中除去数字、逗号和小数点之外的所有内容?到目前为止我最接近的是:-

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

除数字外,这会删除所有内容。当我尝试在表达式中添加逗号时,所有的内容都被删除了。我从别的地方得到了以上的信息,并且尽我所能收集到:
^=不
逗号左侧的所有内容都将被右侧“”中的内容替换
不知道/i做什么
我对GSUB很陌生。有人知道一个关于构建表达式的好教程吗?
谢谢

最佳答案

尝试:
rate = rate.gsub(/[^0-9,\.]/, '')
基本上,您知道^的意思是不在您正在使用的字符类方括号[]内,然后您可以将逗号添加到列表中小数需要用反斜杠转义,因为在正则表达式中,它们是一个特殊字符,表示“匹配任何内容”。
另外,请注意您使用的是gsub还是gsub!
gsub!具有bang,因此它编辑您传入的字符串的实例,而不是返回另一个实例。
因此,如果使用gsub!,它将是:

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

并且rate会被改变。
如果不想更改原始变量,则可以使用不带bang的版本(并将其分配给其他变量):
cleaned_rate = rate.gsub!(/[^0-9,\.]/, '')

我只是在谷歌上搜索教程我没用过。正则表达式是很多时间和反复试验(以及表翻转)。
这是一个很酷的工具,可用于Ruby的一个小的备忘单,它允许您快速编辑和测试您的表达式:
http://rubular.com/

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

10-16 15:09