0

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

上記の他の文字を削除するためのより効率的な方法は何ですか?

4

1 に答える 1

5

あなたは正規表現を探しています:

clean_number = number.gsub(/[^\d]/, "")

の最初の引数gsubは検索するパターンで、2 番目の引数は各出現を置き換えるものです。

これにより、数字 ( [^\d]) 以外のすべてが空の文字列 ( "") に置き換えられます。

于 2012-11-09T20:15:49.210 に答える