字符串
string="aaaaaaaaaSTARTbbbbbbbbbbSTOPccccccccSTARTddddddddddSTOPeeeeeee"
我想删除START和STOP之间发生的所有部分,产生
"aaaaaaaaacccccccceeeeeee"
如果我尝试
gsub("START(.*)STOP","",string)
这给了我
"aaaaaaaaaeeeeeee"
虽然。{/ p>
这样做的正确方法是什么,允许多次出现START和STOP?
答案 0 :(得分:3)
也在其中添加?
。
gsub("START.*?STOP", "", string)
# [1] "aaaaaaaaacccccccceeeeeee"
答案 1 :(得分:0)
不像Ananda的答案那么优雅,但还有一些其他方式使用弦乐器& plyr包。
library(stringr)
library(plyr)
start <- ldply(str_locate_all(string, 'START'))[1, 1]
end <- ldply(str_locate_all(string, 'STOP'))
end <- end[nrow(end), 2]
expression <- str_sub(string, start, end)
str_replace(string, expression, '')