簡體   English   中英

匹配多個模式,返回多個子字符串

[英]match multiple patterns, return multiple substrings

假設我有一個向量搜索字符串,以及一個可能包含多個匹配項的目標字符串。 例如顏色:

search_strings <- c("Black","Grey","Green")
target_string <- "FooBlackBlahGreenBleh"

獲取向量(“ Black”,“ Green”)作為輸出的最有效方法是什么? 即,在目標字符串中的搜索字符串子集的向量?

我們可以使用Vectorize來矢量化grepl

search_strings[Vectorize(grepl)(search_strings,target_string)]
# [1] "Black" "Green"

我們還可以使用可以采用向量的str_match 我們作為輸出獲得的vector具有不匹配的NA,我們將其用is.na刪除

library(stringr)
v1 <- str_match(target_string, search_strings)[,1]
v1
#[1] "Black" NA      "Green"
v1[!is.na(v1)]
#[1] "Black" "Green"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM