从字符串中删除括号

时间:2019-01-09 12:21:27

标签: r regex

我有一个要删除的带有方括号的字符串。 我尝试过:

L0 <- c("(ABC)","DEF","GHI","J(K)")

L1  <- gsub( '()',"",L0)
L1  <- gsub( '(',"",L0)
L1  <- gsub( '(',"",L0)

L1

但这没用。

1 个答案:

答案 0 :(得分:3)

我们可以使用单个gsub来删除括号。将其放在方括号中以按字面值对其进行评估。

gsub("[()]", "", L0)
#[1] "ABC" "DEF" "GHI" "JK" 

还有一个选项fixed = TRUE。在这种情况下

gsub("(", "", L0, fixed = TRUE) # remove the `(`
gsub(")", "", L0, fixed = TRUE) # remove the `)`

以及两者

gsub("(", "", gsub(")", "", L0, fixed = TRUE), fixed = TRUE)
#[1] "ABC" "DEF" "GHI" "JK" 

问题在于,当我们使用()时,它意味着一种含义,即捕获某些组。例如,在下面的代码中,我们删除子字符串并捕获第二个字符

sub("^.(.).*", "\\1", L0)
#[1] "A" "E" "H" "("