R 多个模式的精确匹配

标签 r string

我想在向量中找到“A1”和“A6”的精确匹配:

myfile=paste("A",c(1:10),sep="")

我使用了 stringr 包中的 str_detect:

toMatch <- c("A1", "A6")


str_detect(myfile,fixed(paste(toMatch,collapse="|")))

但对于与“A10”的部分匹配它也会返回 TRUE。

还有其他可行的乐趣吗?

最佳答案

我们可以使用单词边界(\\b)来避免不必要的部分匹配

str_detect(myfile,paste0("\\b(", paste(toMatch, collapse="|"), ")\\b"))
 [1]  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE

根据使用的元素,可以用%in%来完成

myfile %in% toMatch
1]  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE

关于R 多个模式的精确匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69258011/

相关文章:

java - 使用 rJava 导入的静态 Java 函数不适用于 tm_map()

r - 根据配对数据/每两行计算和过滤数据?

R:稀疏矩阵转换

c++ - "stringstream"是否复制构造它的字符串?

javascript - javascript中的字符串连接问题

r - 在连续组上多次使用 setdiff() 而不使用 for 循环

r - 如何测试 R 是否作为 Rscript 运行?

c# - 如何从字符串中去除标点符号?

c# - 我应该将哪个用于空字符串,为什么?

mysql - 在sql中拆分字符串并反转它的函数