From: Shin-ichiro Hara Date: 2000-02-01T16:58:50+09:00 Subject: [ruby-list:20447] Re: 3 桁毎にカンマを入れる 原です。 |いわおかです。 |> while s.sub! /(.*\d)(\d{3})/, '\1,\2'; end | |昔 awk でやったことがあるのですが、まつもとさんの回答の方が awk な |どと同じ考え方で、越水さんの回答の方がなるほどとうならされるような |方法だったというのが何となく面白いですね。 ruby 的というと、、、 s.scan(/(\d+?)(?=\d{3}*$)/).join(",") というのはどうでしょう。(s は完全な整数を表す文字列だとする。)効率悪そ うですが。効率を言うならちゃんと s.size で場合分けすべきかな。例えば s.gsub([/(\d\d\d)((?=\d))/, /(\d)(\d\d)/, /(\d\d)(\d)/][s.size % 3], '\1,\2') みたいに。