string = c("apple", "apples", "applez")
grep("apple", string)
這會給我string
中所有三個元素的索引。但我想要一個完全匹配的單詞「蘋果」(即我只想grep()
返回索引1)。如何使用grep()查找完全匹配
string = c("apple", "apples", "applez")
grep("apple", string)
這會給我string
中所有三個元素的索引。但我想要一個完全匹配的單詞「蘋果」(即我只想grep()
返回索引1)。如何使用grep()查找完全匹配
使用單詞邊界\b
這一個字和非單詞字符之間的匹配,
string = c("apple", "apples", "applez")
grep("\\bapple\\b", string)
[1] 1
OR
使用錨。 ^
斷言我們是在開始。 $
斷言我們在最後。
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
'paste0(「^」,pat,「$」)'可以保存一些輸入到'paste'上的字符。不需要'sep =「」' – Ben 2015-10-23 05:28:30
精確匹配,這使得使用==
最有意義。另外,這將比grep()
更快,並且顯然更容易。
which(string == "apple")
# [1] 1
對於完全匹配,請考慮使用'=='或'match'。 – flodel 2014-11-08 04:20:02
對於gsub而不是grep呢? – 2016-11-10 00:33:27