我有一个要删除的带有方括号的字符串。 我尝试过:
L0 <- c("(ABC)","DEF","GHI","J(K)")
L1 <- gsub( '()',"",L0)
L1 <- gsub( '(',"",L0)
L1 <- gsub( '(',"",L0)
L1
但这没用。
答案 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" "("