LoginSignup
48
32

More than 5 years have passed since last update.

Rubyで数字と文字の混ざった文字列から数字のみを取り出す

Last updated at Posted at 2016-06-13

数字と文字が入り混じった文字列、例えば"abc12345def67890"のような文字列から数字のみを取り出す方法について。
正規表現で数字以外を削除します。

num = "abc12345def67890".gsub(/[^\d]/, "").to_i # num => 1234567890

これを利用すると記号付きの文字(100kg, 100km等など)から数字のみを抜き出して計算できました。
これなら例えば単位ごとに正規表現を書き換えるというようなことも無いので色々と使えるのではないかと思いました。

(これを思いつくまでに30分くらい色々考えてしまったのは内緒...)


追記
コメントにて特定の種類の文字をすべて消すのであればdeleteのほうが向いていると教えていただきました。

"abc12345def67890".delete("^0-9")

ベンチマーク(コメント欄参照)でも数倍の差が出る模様です。

48
32
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
32