sub, gsubメソッドで置換を行う

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

subメソッド、gsubメソッドで、正規表現により文字列中のマッチした部分を、別の文字列へと置き換えることができます。
subは、最初にマッチした部分の置換、gsubは、すべてのマッチした部分を置き換えます。

p "yyyabcabcabczzz".sub(/abc/, 'ABC')
p "yyyabcabc\nabczzz".gsub(/abc/, 'ABC')
puts "yyyabcabc\nabczzz".gsub(/abc/, 'ABC')
p "abc    xyz   ABC   \n def    XYZ".gsub(/\s+/, ', ')
 
str = "hello world !"
s_str = str.sub(/[^\s]+/){|m|
    m.capitalize
}
p s_str
 
str = "hello world !"
s_str = str.gsub(/[^\s]+/){|m|
    m.capitalize
}
p s_str

sub, gsubは、ブロックを取ることができます。
マッチした部分が引数としてブロックに渡され、ブロック内で処理され返された値で、元のマッチした部分が置き換えられます。
実行結果。

"yyyABCabcabczzz"
"yyyABCABC\nABCzzz"
yyyABCABC
ABCzzz
"abc, xyz, ABC, def, XYZ"
"Hello world !"
"Hello World !"

subとgsubは、正規表現でよく使うメソッドですので、使い慣れておくと便利そうです。
破壊的なメソッドとして、それぞれsub!, gsub!があります。


日時: 2008年06月28日 23:45
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/384

この記事にトラックバックされる方は、参照先が分かるようにするために、「sub, gsubメソッドで置換を行う」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - Ruby勉強ルーム