GSUB

2013-08-30 3 views
16

私は一つだけのために2個のドットを交換するには、次のコードを使用しようとしていると、文字列に2個のドットを交換してください大カッコ[]を含むエスケープ文字列は成功しません。
何が間違っていますか?GSUB

答えて

30

あなたは(非解釈)文字.使用し、fixed = TRUEを使用しようとしている場合:それ以外の場合は

> gsub("..", ".", test, fixed = TRUE) 

を、正規表現(fixed = FALSE)内、.は特別な意味(任意の文字)を持っているので」 "ドット文字"を意味するバックスラッシュを接頭辞として使用します:

> gsub("\\.\\.", ".", test) 
> gsub("\\.{2}", ".", test) 
+11

私はエスケープの代わりに文字クラスを使いたいと思っています。 'gsub(" [。] {2} "、"。 "、test)' –