我正在尝试从长字符串中的向量中找到第一个匹配的字符串。我有例如example_string <- 'LionabcdBear1231DogextKittyisananimalTurtleisslow'
和matching_vector<- c('Turtle',Dog')
现在我希望它返回'Dog',因为这是我们在示例字符串中看到的matches_vector中的第一个子字符串:LionabcdBear1231 Dog extKittyisananimalTurtleisslow
我已经尝试pmatch(example_string,matching_vector)
,但它不起作用。显然因为它不适用于子串......
谢谢! 蒂姆
答案 0 :(得分:2)
以下解决方案是否适合您?
example_string <- 'LionabcdBear1231DogextKittyisananimalTurtleisslow'
matching_vector<- c('Turtle','Dog')
match_ids <- sapply(matching_vector, function(x) regexpr(x ,example_string))
result <- names(match_ids)[which.min(match_ids)]
> result
[1] "Dog"
答案 1 :(得分:1)
我们可以使用stri_match_first
stringi
library(stringi)
stri_match_first(example_string, regex = paste(matching_vector, collapse="|"))