r-如何删除字符中带有文字的一对括号?

问题描述

我在R中有一个角色:

value <- "This is (delete) a (keep) test sentence."

我想删除带有文本的第一对括号,但保留第二对括号。我尝试使用gsub()

value2 <- gsub("(delete)"," ",value)

结果是:"This is () a (keep) test sentence."

但是我需要的是:"This is a (keep) test sentence."

我该怎么做?

解决方法

使用sub

sub('\\(.*?\\)\\s','',value)
#[1] "This is a (keep) test sentence."
  • ()是元字符,需要使用\\进行转义。

  • .*?要匹配尽可能少的字符,直到遇到右括号())。