删除ruby中除数字和小数点以外的所有特殊字符

时间:2017-11-04 08:00:33

标签: ruby-on-rails ruby regex string

我想编写一个ruby代码,只是为了删除除数字和小数点之外的字符串中的所有特殊字符。我不知道最简单的方法。

例如 - 我想要执行操作的字符串是test1.3eb@j$2.xyz。

现在我只想测试test1.3ebj2xyz。

我想删除所有特殊字符和点(除非点位于两位数之间,即当点被视为小数点时)

请帮我解决这个问题。提前谢谢!

1 个答案:

答案 0 :(得分:1)

通常,特殊字符不是字母数字字符。如果您自己的定义相同,那么您需要一个正则表达式来捕获十进制数以防止它们被删除:

(\d\.\d)|[^a-zA-Z\d]

红宝石:

re = /(\d\.\d)|[^a-zA-Z\d]/
str = 'test1.3eb@j$2.xyz.'
subst = '\\1'

result = str.gsub(re, subst)

puts result