RubyのStringクラス

rubyの公式サイトが更新され、そのトップページに、あるサンプルプログラムが表示されていた。おおよそこんな感じ。

# Output "I love Ruby"
say = "I love Ruby"
puts say
 
# Output "I *LOVE* RUBY"
say['love'] = "*love*"
puts say.upcase
 
# Output "I *love* Ruby"
# five times
5.times { puts say }

Stringクラスで、添え字として正規表現を指定すると置換してくれるなんてまったく知らなかった。ショック。
以下はリファレンスマニュアル(Stringクラス)より。

self[regexp]=val
self[regexp, nth]=val (ruby 1.7 feature)
正規表現 regexp にマッチする最初の部分文字列を文字列 val で置き換えます。

正規表現がマッチしなければ例外 IndexError が発生します。

val を返します。

ruby 1.7 feature: 引数 nth を指定した場合は、正規表現 regexp の nth 番目の括弧にマッチする最初の部分文字列を文字列 val で置き換えます。nth が 0 の場合は、マッチした部分文字列全体を val で置き換えます。

正規表現がマッチしない場合や nth に対応する括弧がなければ例外 IndexError が発生します。