アメリエフの技術ブログ

Amelieff Staff Blog

数値をカンマで3ケタ区切りにする

先日、数年ぶりに同い年の従兄弟に会いました。彼は正規表現の研究をしています。具体的にどんな研究をしているのか想像できないのですが、日頃からお世話になっている技術なので、お礼を言っておきました。

ということで、正規表現を使って、数値を3ケタのカンマ区切りにする方法をご紹介します。PerlとPythonです。

・Perl

$num = 1234567890;
$num =~ s/(¥d{1,3})(?=(?:¥d¥d¥d)+(?!¥d))/$1,/g;
print "$num¥n";

・Python

import re   #正規表現操作モジュールのインポート
num = 1234567890
num = re.sub(r'(¥d)(?=(¥d{3})+(?!¥d))', '¥¥1,', str(num))
print num

以上のソースコードをそれぞれファイルに保存して実行すると、以下のように3ケタごとにカンマで区切られた結果を出力します。

1,234,567,890

Pythonの場合、localモジュールを使う方法もありますが、今回は正規表現を使った方法のみのご紹介でした。