19

次のコードを使用して、2 つのドットを 1 つだけに置き換えようとしています。

test<-"test..1"
gsub("\\..", ".", test, fixed=TRUE)

そして取得:

[1] "test..1"

ブラケット [] を含むエスケープ文字列の組み合わせをいくつか試しましたが、成功しませんでした。
私は何を間違っていますか?

4

1 に答える 1

37

を使用する場合fixed = TRUEは、(解釈されない) 文字を使用し.ます。

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

それ以外の場合、正規表現 ( fixed = FALSE) 内で.は特別な意味 (任意の文字) があるため、「ドット文字」を意味するバックスラッシュを前に付ける必要があります。

> gsub("\\.\\.", ".", test)
> gsub("\\.{2}", ".", test)
于 2013-08-30T02:31:36.143 に答える