Rの正規表現


Rの正規表現は面倒だ。
perlやrubyでは、スラッシュでquoteするので、バックスラッシュの取扱いが簡単だが、Rでは、“や’でquoteするので、バックスラッシュを二個重ねないといけないので、厄介だ。 rubyだと、

r.gsub!(/\^\{([^\}]*)\}/){"\",phantom()\^{#{$1} phantom()},\""}

と書けば良いところを、

r<-gsub('\\^\\{([^\\}]*)\\}',"\",phantom()^{\\1 phantom()},\"",r)

というように長くなってしまう。ちなみに、phantom()はV4+とかのときに、エラーがでないようにするためにつけています。