『たのしいRuby第3版』第14章正規表現
subメソッドとgsubメソッドのところ、ちょっと分かりにくいのでテスト。
「!」つきのsub!メソッドとgsub!メソッドにすると、レシーバーにあたるオブジェクトを
置き換え後の文字列に変更する仕様とのこと。
str = "abracatabra" nstr = str.sub(/.a/) do |matched| '<'+matched.upcase+'>' end p str p nstr
実行結果
>> p str
"abracatabra"
=> nil
>> p nstr
"ab
=> nil
str = "abracatabra" nstr = str.sub!(/.a/) do |matched| '<'+matched.upcase+'>' end p str p nstr
実行結果
>> p str
"ab
=> nil
>> p nstr
"ab
=> nil
ふむふむ。