简体   繁体   English

R-带有特定排除项的grepl

[英]R - grepl with a specific exclusion

I was wondering how I can insert a specific exclusion pattern in a grepl . 我想知道如何在grepl插入特定的排除模式。

Let us imagine, I want to seach for WHAM . 让我们想象,我想向WHAM致意。

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

What I get is 我得到的是

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

I can see that HOTELNEWHAMP is foreign. 我可以看到HOTELNEWHAMP是外国的。

How can I then vec[grepl("WHAM", vec )] and indicate clearly I do not want HOTELNEWHAMP ? 然后,我该如何vec[grepl("WHAM", vec )]并明确指出我不希望HOTELNEWHAMP

(not this vec[!grepl("HOTELNEWHAMP", vec )] because of course my real vector include many more variables). (不是这个vec[!grepl("HOTELNEWHAMP", vec )]因为我的真实向量当然包含更多变量)。

Thanks 谢谢

Use word boundaries. 使用单词边界。

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

or 要么

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM