asi*_*ing 0 ruby csv formatting phone-number ruby-1.9.3
我正在使用Ruby清理CSV文件中的一些电话号码条目.有些用户输入了不需要的字符,我想对它们进行排序和删除(包括:句点,括号,连字符).在编写代码时,我意识到我可以使用Ruby提供的.delete方法,如下所示:
def clean_num
@file.each do |line|
number = line[3]
#Would need a .delete for every unwanted character?
clean_number = number.delete(".")
puts clean_number
end
end
Run Code Online (Sandbox Code Playgroud)
删除上述其他字符的更有效方法是什么?
你正在寻找正则表达式:
clean_number = number.gsub(/[^\d]/, "")
Run Code Online (Sandbox Code Playgroud)
第一个参数gsub是要查找的模式,第二个参数是用什么来替换每个出现的.
这将[^\d]使用空字符串("")替换不是digit()的所有内容.