string = c("Apple", "apples", "applez")
grep("Apple", string)
これにより、string
の3つの要素すべてのインデックスが得られます。しかし、「Apple」という単語と完全に一致する必要があります(つまり、grep()
にインデックス1を返すだけです)。
単語の境界\b
を使用します。これは、単語と単語以外の文字の間を一致させます。
string = c("Apple", "apples", "applez")
grep("\\bapple\\b", string)
[1] 1
または
アンカーを使用します。 ^
開始時にアサートします。 $
最後にいることを表明します。
grep("^Apple$", string)
[1] 1
正規表現を変数内に保存して、以下のように使用できます。
pat <- "\\bapple\\b"
grep(pat, string)
[1] 1
pat <- "^Apple$"
grep(pat, string)
[1] 1
更新:
paste("^",pat,"$", sep="")
[1] "^Apple$"
string
[1] "Apple" "Apple:s" "applez"
pat
[1] "Apple"
grep(paste("^",pat,"$", sep=""), string)
[1] 1
完全に一致させるには、==
を使用するのが最も理にかなっています。さらに、これはgrep()
よりも高速であり、明らかにはるかに簡単です。
which(string == "Apple")
# [1] 1