嗨,过去一个小时我一直在努力解决这个问题,但离我还很近。如何从 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 的迷你备忘单,可以让您快速编辑和测试您的表达式:
关于ruby-on-rails - Rails 去除除数字逗号和小数点以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28907816/