使用gsub从R字符串中删除/替换括号

8
我想使用gsub从我的字符串中删除或替换括号“(”或“)”。但是,如下所示,它不起作用。可能的原因是什么?
 >  k<-"(abc)"
 >  t<-gsub("()","",k)
 >  t 
[1] "(abc)"
3个回答

16

使用正确的正则表达式可以正常工作:

gsub("[()]", "", "(abc)")

额外的方括号意味着"匹配其中任何一个字符"


2
一种安全且简单的解决方案,不依赖于正则表达式:
k <- gsub("(", "", k, fixed = TRUE) # "Fixed = TRUE" disables regex
k <- gsub(")", "", k, fixed = TRUE)
k
[1] "abc"

1
可能的方法(在OP尝试的行中)是:
gsub("\\(|)","","(abc)")
#[1] "abc"


`\(`  => look for `(` character. `\` is needed as `(` a special character. 
`|`  =>  OR condition 
`)` =   Look for `)`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接