嗨,我在最后一小时一直在努力奋斗,而且我已经没有了。我究竟如何从rails字符串中删除除数字,逗号和小数点以外的所有内容?我到目前为止最接近的是: -
rate = rate.gsub!(/[^0-9]/i, '')
除了数字之外,它除去了所有内容。当我尝试在表达式中添加逗号时,一切都被剥离了。我从其他地方得到了上述内容,据我所知:
^ =不
逗号左侧的所有内容都被“''中的内容所取代。在右边
不知道/我做什么
我对gsub很新。有没有人知道有关构建表达式的好教程?
谢谢
答案 0 :(得分:3)
尝试:
rate = rate.gsub(/[^0-9,\.]/, '')
基本上,您知道^
表示在您使用的字符类括号 []内时不是,然后您只需将逗号添加到列表中即可。小数需要使用反斜杠进行转义,因为在正则表达式中,它们是一个特殊字符,表示"匹配任何内容"。
另外,请注意您使用的是gsub
还是gsub!
gsub!
有爆炸声,所以它会编辑你传入的字符串的实例,而不是返回另一个。
因此,如果使用gsub!
,那就是:
rate.gsub!(/[^0-9,\.]/, '')
rate
会被改变。
如果您不想更改原始变量,那么您可以使用没有爆炸的版本(并将其分配给不同的变量):
cleaned_rate = rate.gsub!(/[^0-9,\.]/, '')
我只是谷歌搜索教程。我还没用过。正则表达式有很多时间和反复试验(和表格翻转)。
这是一个很酷的工具,可以在它上面使用迷你作弊表,用于红宝石,可以让你快速编辑和测试你的表达:
答案 1 :(得分:1)
您只需在方括号表达式中添加逗号和句点:
rate.gsub(/[^0-9,.]/, '')
对于数字和符号的大小写不敏感,您不需要i
。
regular expressions
,regex
等有很多信息。也许会搜索那些而不是gsub
。
答案 2 :(得分:1)