gsub没有替换R中的链接
嗨,伙计们,我正在尝试做一些简单的事情。出于某种原因,gsub是个混蛋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
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
时,|
被解释为模式字符串的一部分。将其删除。还是不走运。所以我猜这是因为当我删除它时,它开始解释特殊字符。删除
不会有什么帮助-现在模式只是两个字符串的串联。