Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
710 views
in Technique[技术] by (71.8m points)

r - find multiple strings using str_extract_all

I have a list of strings as follows:

tofind<-c("aaa","bbb","ccc","ddd")

I also have a vector as follows:

n<-c("aaabbb","aaa","aaacccddd","eee")

I want to find all matches of my tofind string so that the output should be:

aaa,bbb
aaa
aaa,ccc,ddd

I think I can use str_extract_all but it doesn't give my the expected output

library(stringr)
sapply(n, function(x) str_extract_all(n,tofind)

How do I get the expected output?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You could create a single regex:

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

str_extract_all(n, tofind)
[[1]]
[1] "aaa" "bbb"

[[2]]
[1] "aaa"

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

[[4]]
character(0)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...