string = c("apple", "apples", "applez")
grep("apple", string)
这会给我该指数在所有三个元素string
。 但我想对“苹果”这个词(即我只是想精确匹配grep()
返回指数1)。
string = c("apple", "apples", "applez")
grep("apple", string)
这会给我该指数在所有三个元素string
。 但我想对“苹果”这个词(即我只是想精确匹配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