使用 str_extract_all 查找多个字符串

Seb*_*eki 4 r

我有一个字符串列表如下:

tofind<-c("aaa","bbb","ccc","ddd")
Run Code Online (Sandbox Code Playgroud)

我还有一个向量如下:

n<-c("aaabbb","aaa","aaacccddd","eee")
Run Code Online (Sandbox Code Playgroud)

我想找到我的tofind字符串的所有匹配项,以便输出应该是:

aaa,bbb
aaa
aaa,ccc,ddd
Run Code Online (Sandbox Code Playgroud)

我想我可以使用,str_extract_all但它没有给我预期的输出

library(stringr)
sapply(n, function(x) str_extract_all(n,tofind)
Run Code Online (Sandbox Code Playgroud)

我如何获得预期的输出?

eip*_*i10 5

您可以创建一个正则表达式:

tofind <- paste(c("aaa","bbb","ccc","ddd"), collapse="|")

str_extract_all(n, tofind)
Run Code Online (Sandbox Code Playgroud)
[[1]]
[1] "aaa" "bbb"

[[2]]
[1] "aaa"

[[3]]
[1] "aaa" "ccc" "ddd"

[[4]]
character(0)
Run Code Online (Sandbox Code Playgroud)