【发布时间】:2019-05-26 07:49:36
【问题描述】:
我有以下字符串:
string <- c("ABDSFGHIJLKOP")
和子串列表:
sub <- c("ABDSF", "SFGH", "GHIJLKOP")
我想在每个子匹配之后包含 从而得到:
<ABD><SF><GH><GHIJKOP>
我已经通过对列表的模式匹配尝试了以下代码,但是一旦匹配 ABDSF,SFGH 就不再被识别,因为包含 字符。有人有更好的主意吗?
library(stringr)
library(dplyr)
library(magrittr)
string <- c("ABDSFGHIJLKOP")
sub <- c("ABDSF", "SFGH", "GHIJLKOP")
for (s in sub){
string %<>% str_replace_all(., s, paste0('<', s,'>'))
}
print(string)
Result: [1] "<ABDSF><GHIJLKOP>"
编辑:上面代码的问题是,一旦插入 字符,在第一个字符串匹配后,第二个字符串 SFGH 就不再被识别,因为字符串现在是:
<ABDSF>GHIJLKOP.
所以我正在寻找一种方法来匹配忽略 字符的子字符串。
【问题讨论】:
-
我不明白您如何获得预期的输出。请您详细说明一下吗?
-
不完全是上述的副本
-
查看该问题的倒数第三个答案(由 Zach Foster 提供)。可能会有所帮助。
-
啊我其实是指OP,他的预期输出不符合他的标准,所以我有点困惑。
标签: r regex gsub stringr stringi