Ruby Tips!

RubyのTipsを紹介します

特殊文字を2重にしてエスケープする

SQLのように特殊文字を2重にするエスケープもString#gsubを使って簡単に記述できる。

p "foo'bar\"buz\\".gsub(/['"\\]/){|c| c + c} #=> "foo''bar\"\"buz\\\\"

エスケープした文字列をアンエスケープする処理は、同様にString#gusbを使って以下のように記述できる。

p "foo''bar\"\"buz\\\\".gsub(/(['"\\])\1/){ $1 } #=> "foo'bar\"buz\\"