2010年8月 6日
[Ruby]正規表現をグループ化し、マッチしたものを置換したい場合はシングルクオーテーションを
(...)で正規表現をグループ化し、後でマッチしたものを\1、\2で呼び出したい時はぜひシングルクオーテーションとダブルクオーテーションに注意。
この場合はシングルクオーテーションを使ってください。
"hello".gsub(/([aeiou])/, '<\1>') #=> "h<e>ll<o>"
"hello".gsub(/([aeiou])/, "<\1>") #=> "h< >ll< >"
ここは括弧が付いてるからマッチしたものは\1で呼び出せます。そしてマッチの規則はa,e,i,o,uのいずれかです。なので"hello"の中の"e"と"o"が置換されました。
秀丸でやったときはダブルクオーテーションも大丈夫だっだ。。。