【发布时间】:2018-04-05 21:40:36
【问题描述】:
我想使用 gsub 从我的字符串中删除或替换括号“(”或“)”。但是,如下所示,它不起作用。可能是什么原因?
> k<-"(abc)"
> t<-gsub("()","",k)
> t
[1] "(abc)"
【问题讨论】:
我想使用 gsub 从我的字符串中删除或替换括号“(”或“)”。但是,如下所示,它不起作用。可能是什么原因?
> k<-"(abc)"
> t<-gsub("()","",k)
> t
[1] "(abc)"
【问题讨论】:
使用正确的正则表达式有效:
gsub("[()]", "", "(abc)")
附加的方括号表示“匹配里面的任何字符”。
【讨论】:
不依赖正则表达式的安全简单的解决方案:
k <- gsub("(", "", k, fixed = TRUE) # "Fixed = TRUE" disables regex
k <- gsub(")", "", k, fixed = TRUE)
k
[1] "abc"
【讨论】:
可能的方式可能是(在 OP 正在尝试的行中):
gsub("\\(|)","","(abc)")
#[1] "abc"
`\(` => look for `(` character. `\` is needed as `(` a special character.
`|` => OR condition
`)` = Look for `)`
【讨论】: