在R中部分匹配的Grep

时间:2017-03-29 03:32:51

标签: r regex grep

我可以使用以下代码

将我的输入ex与向量str匹配

这里" exp"与str

匹配
str <- c("Regular", "expression", "examples of R language")    
x <- grep("exp",str,value=F)

但相反,我想匹配&#34;表达&#34;像这样的str

输入是&#34;表达&#34;它应匹配str&#34; exp&#34;在下面的例子中

str <- c("Regular", "exp", "examples of R language")`
x <- grep("expression",str,value=F) 
x

#exp

我的x =&#34;表达&#34;应该与str&#34; exp&#34;匹配,结果应该给出&#34; exp&#34;

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

我们需要提取子字符串。在base R中,可以使用regexpr/regmatches

完成此操作
regmatches(str, regexpr("exp", str))
#[1] "exp"

或使用stringr/stringi

library(stringr)
na.omit(str_extract(str, 'exp'))
#[1] "exp"

使用grep我们可以找到是否存在部分匹配。它返回元素的数字索引或逻辑向量(使用grepl)。使用value = TRUE,它返回匹配的元素而不是部分子字符串