Grep搜索毫不含糊的点击率

时间:2016-07-05 08:16:44

标签: regex r string search grep

我尝试设置grep搜索以明确匹配字符串。

这是我的主题载体:

a <- c("a1", "a10", "a1, a2", "a3, a1", "a100", "b1", "c1b1")

我的疑问:

b <- c("a1", "b1")

和预期的输出:

a[c(1, 3, 4, 6)]
[1] "a1"     "a1, a2" "a3, a1" "b1"  

到目前为止我尝试了什么。我使用|搜索b中的每个a值。包括$停止并不能完全正确地完成工作:

 a[grep(paste(b, collapse = "$|"), a)] 
 [1] "a1"     "a3, a1" "b1"     "c1b1"

提前致谢。

1 个答案:

答案 0 :(得分:3)

您可以添加单词边界以明确地匹配您需要的内容:

a[grep(paste0("\\b", b, "\\b", collapse = "|"), a)] 
#[1] "a1"     "a1, a2" "a3, a1" "b1"

正则表达式是"\\ba1\\b|\\bb1\\b"

如果放入(现已删除)@docendo答案,无需子集a,您可以使用value的参数grep直接检索值,设置为{{1} }:

TRUE