匹配两个字符串中的字符序列

时间:2018-05-02 08:46:10

标签: r string character match subsequence

我有以下问题:

a <- "blablabla_string_to_extract_qwertz"
b <- "werwer_qweqweq_string_to_extract_nnmn"
d <- c("hello", "This is nonsense", b)

现在我想在向量d中测试是否有一个包含与a匹配的字符序列的条目。 输出应为

  

“werwer_qweqweq_string_to_extract_nnmn”

,因为“string_to_extract”是b的一部分,也是b的一部分。 grep或grepl不会提供此功能,因为必须在d。

中找到完整的字符串

另一件事:我不知道我要查找的字符串序列“string_to_extract”总是以“_”开头和结尾,也许它直接连接到任何其他字母。

非常感谢!

1 个答案:

答案 0 :(得分:3)

d[max.col(-adist(a,d,partial=T))]
[1] "werwer_qweqweq_string_to_extract_nnmn"

或者您可以使用agrep

agrep(a,d,0.5,value = T)
[1] "werwer_qweqweq_string_to_extract_nnmn"