从已解析的CSV文件中删除非数字字符

时间:2013-01-23 10:53:22

标签: ruby-on-rails ruby ruby-on-rails-3

我是ruby.i的新手想要从CSV文件解析的电话号码中删除非数字字符。 这是我使用的代码。

require 'csv' 
csv_text = File.read('file.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|                                      
    puts "First Name: #{row['Name']} - HomePhone: #{row['Phone']} -  Zip Code: #{row['Zipcode']}"
end

输出打印如下

   FirstName:Abiel HomePhone:6667-88-76 

(在CSV文件中,HomePhone包含非数字字符。)  我希望输出为FirstName:Abiel HomePhone:66678876

2 个答案:

答案 0 :(得分:2)

这应该有效:

row['Phone'].gsub(/[^0-9]/, "")

答案 1 :(得分:2)

是,或只是row['Phone'].gsub(/\D/, "")

其中\d表示数字字符,而\D表示任何非数字字符。