gsub没有替换R中的链接

gsub没有替换R中的链接,r,gsub,R,Gsub,嗨,伙计们,我正在尝试做一些简单的事情。出于某种原因,gsub是个混蛋 vector <- c("http://aa.bb.com/ss/who/searchpage/tab/message?sort_by=-topicPostDate&page=YOU","http://aa.bb.com/ss/who/searchpage/tab/message?filter=labels location&location=oh-my:DID IT","BLAH BLAH") s

嗨,伙计们,我正在尝试做一些简单的事情。出于某种原因,gsub是个混蛋

vector <- c("http://aa.bb.com/ss/who/searchpage/tab/message?sort_by=-topicPostDate&page=YOU","http://aa.bb.com/ss/who/searchpage/tab/message?filter=labels location&location=oh-my:DID IT","BLAH BLAH")


subs <- c("http://aa.bb.com/ss/who/searchpage/tab/message?sort_by=-topicPostDate&page=",
          "http://aa.bb.com/ss/who/searchpage/tab/message?filter=labels location&location=oh-my:")

gsub(paste(subs,collapse = "|"),"",vector, fixed = TRUE)

vector要使用
|
在正则表达式中表示“或”,需要
fixed=F

但是,模式中的
意味着:前面的字符出现一次或零次,而不是根据需要匹配文本

解决此问题的一种方法是退出
子系统中的

subs <- gsub('?', '\\?', subs, fixed=T)
gsub(paste(subs,collapse = "|"), "", vector, fixed=F)
# [1] "YOU"       "DID IT"    "BLAH BLAH"

subs当您设置
fixed=T
时,
|
被解释为模式字符串的一部分。将其删除。还是不走运。所以我猜这是因为当我删除它时,它开始解释特殊字符。删除
不会有什么帮助-现在模式只是两个字符串的串联。