R 匹配多个模式,返回多个子字符串
假设我有一个搜索字符串向量和一个可能包含多个匹配项的目标字符串。e、 g.颜色:R 匹配多个模式,返回多个子字符串,r,R,假设我有一个搜索字符串向量和一个可能包含多个匹配项的目标字符串。e、 g.颜色: search_strings <- c("Black","Grey","Green") target_string <- "FooBlackBlahGreenBleh" search\u strings我们可以使用Vectorize对grepl进行矢量化: search_strings[Vectorize(grepl)(search_strings,target_string)] # [1] "Bla
search_strings <- c("Black","Grey","Green")
target_string <- "FooBlackBlahGreenBleh"
search\u strings我们可以使用Vectorize
对grepl
进行矢量化:
search_strings[Vectorize(grepl)(search_strings,target_string)]
# [1] "Black" "Green"
我们可以使用Vectorize
对grepl
进行矢量化:
search_strings[Vectorize(grepl)(search_strings,target_string)]
# [1] "Black" "Green"
我们还可以使用str\u match
来获取向量。作为输出得到的向量
对于非匹配项有NA,我们用移除它是.NA
library(stringr)
v1 <- str_match(target_string, search_strings)[,1]
v1
#[1] "Black" NA "Green"
v1[!is.na(v1)]
#[1] "Black" "Green"
库(stringr)
v1我们还可以使用str\u match
来获取向量。作为输出得到的向量
对于非匹配项有NA,我们用移除它是.NA
library(stringr)
v1 <- str_match(target_string, search_strings)[,1]
v1
#[1] "Black" NA "Green"
v1[!is.na(v1)]
#[1] "Black" "Green"
库(stringr)
v1@ZheyuanLi感谢您的反馈。我对效率没有把握。stringr
函数是从stringi
包中优化的。@ZheyuanLi感谢您的反馈。我对效率没有把握。stringr
函数从stringi
包中优化。