在R中提取字符串的字符部分

Extracting the character part of a string in R

我在 R 中工作。我有一个很长的字符串向量。在这个向量中,我想找到像 "ABC23-ABC54" 这样的字符串。准确地说,在“-”前后具有相同字符和不同数字的字符串。

到目前为止,我可以提取中间带有“-”的字符串并分配 part1="ABC23" 和 part2="ABC54"。下一步是通过删除数字部分来匹配字符部分,但不知道字符和数字部分的确切形式和长度。

我如何在 R 中做到这一点?

谢谢!

删除数字,使用read.table将剩下的两个字段读入两列并进行比较。

ok <- with(read.table(text = gsub("\d", "", s), sep = "-", as.is = TRUE), V1 == V2)
ok
## [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE

s[ok]
## [1] "ABC12-ABC123" "ABC12-ABC1"   "ABC12-ABC"    "ABC12-ABC012"

备注

我们使用了从问题下方的评论中获取的以下测试输入。

s <- c("ABC12-ABCD13", "ABC12-AB34", "ABC12-AB12", "ABC12-ABCD12", "ABC12-ABC123", 
       "ABC12-ABC1", "ABC12-ABC", "ABC12-ABC012")