我有一个字符串 Project Change Request (PCR) - HONDA DIGITAL PLATEFORM
保存在 supp_matches
中,supp_matches1
包含字符串 项目变更请求 (PCR) -
。
supp_matches2 <- gsub("^.*[supp_matches1]","",supp_matches)
supp_matches2
# [1] " (PCR) - HONDA DIGITAL PLATEFORM"
这实际上是不正确的,但它应该是这样的
supp_matches2
# [1] "HONDA DIGITAL PLATEFORM"
为什么它没有按应有的方式出现?
最佳答案
正如我在评论中所说,在你的表达式 gsub("^.*[supp_matches1]", "", supp_matches)
中,你并没有真正使用对象 supp_matches1
但只是其中的字母。
您可以执行类似 gsub(paste0("^.*", supp_matches1), "", supp_matches)
的操作来真正使用 supp_matches1
中包含的表达式,除了也就是说,正如@rawr 所提到的,您的表达式中有括号,因此您需要将它们转义。
获得所需内容的正确表达式将是 sub("Project Change Request\\(PCR\\) - ", "", supp_matches)
要得到你想要的,你可以使用gsub
(sub
)函数的fixed
参数,它表示参数 pattern
将按原样匹配(因此,无需转义任何内容,而且也没有真正的正则表达式)。
那么你要找的是:
gsub(supp_matches1, "", supp_matches, fixed=TRUE) # or just with `sub` in this case
#[1] "HONDA DIGITAL PLATEFORM"
关于regex - 在 r 中使用 gsub 删除模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31267208/