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!があります。
■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/384