R - 具有特定排除项的 grepl

R - grepl with a specific exclusion

我想知道如何在 grepl 中插入特定的排除模式。

想象一下,我想搜索WHAM

vec = c("WHAM VIDEO", "WHAM RAP", "WHAM", "HOTELNEWHAMP")
vec[grepl("WHAM", vec )]

我得到的是

[1] "WHAM VIDEO"   "WHAM RAP"     "WHAM"         "HOTELNEWHAMP"

我看出来HOTELNEWHAMP是外国的。

我怎样才能 vec[grepl("WHAM", vec )] 并明确表示我不想要 HOTELNEWHAMP

(不是这个 vec[!grepl("HOTELNEWHAMP", vec )] 因为我的真实向量当然包含更多变量)。

谢谢

使用单词边界。

vec = c("WHAM VIDEO", "WHAM RAP", "WHAM", "HOTELNEWHAMP")
vec[grepl("\bWHAM\b", vec )]
# [1] "WHAM VIDEO" "WHAM RAP"   "WHAM" 

vec[grepl("(?<!\S)WHAM(?!\S)", vec, perl=TRUE )]
# [1] "WHAM VIDEO" "WHAM RAP"   "WHAM"