regex - 在 r 中使用 gsub 删除模式

标签 regex r gsub stringr

我有一个字符串 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/

相关文章:

r - 我收到类似 Error in if (file.access(phantompath, 1) < 0) { : argument is of length zero when I use Phantomjs(port = 4567l) 的错误

ruby - 使用 gsub 时如何限制替换次数?

regex - 删除R中破折号周围的空格

python - 用空格填充多个字符 - python

java - 不同行中单词的正则表达式

c# - 检索特定模式内的值

R 正则表达式 : Match all double-quote (") characters inside square brackets

Python正则表达式,匹配多个整数

r - R 控制台中的彩色输出,尤其是。有色错误

r - 使用 R 绘制箱线图