それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

文字列からで数字(金額や単位)を純粋に取り出して計算する

数字を取り出す方法はいろいろあるけど・・・

正規表現で抜き出すとよりも、数字以外を消したほうが速いって事に気づいた。今までの自分は何をしてたんだろうと泣きそうになる。

"¥12,000".gsub(/[^\d]/, "").to_i #=> 12000

これで簡単に、いままで何をしてたんだろうと本当に。。。(泣く

"2014-12-22".gsub(/[^\d]/, "") # => 20141222
"2014 12/22".gsub(/[^\d]/, "") # => 20141222

あああ、本当に今まで何やってたんだろうな。。。

正規表現で数字以外を消せばいいのかぁ。ついつい、split / join したり、replaceで区切り文字列消したり、scanf系で抜いたり、grep でマッチ部分取り出したり、などしてしまうよね。あぁ馬鹿だ。

マイナス残したい時だって

"¥ -12,000".gsub(/[^\d\-]/, "").to_i #=> -12000

これは、楽・・・

php でも 同じですね。

<?php
echo preg_replace("/[^\d]/","" ,"¥1,200(税抜)");
echo "\n";
echo preg_replace("/[^\d\-]/","" ,"¥-1,200");
echo "\n";

手抜き系、 parseInt

ruby

"64GB".to_i # => 64

javascript

parseInt("64GB") # => 64
parseInt("1200px") # => 1200

先頭文字が数字を表す文字列なら、parseint にかけてしまえば js / ruby などでも簡単だった。