R:去掉标点符号,除了方括号“[”“]”和问号“?”

R: Remove punctuations except squared brackets "[" "]" and question mark "?"

我正在尝试从我的数据中删除除“?”之外的所有标点符号。 “[“ 和 ”]”。我只能为“?”执行此操作,其中我执行了以下操作:

gsub("[^[:alnum:][:space:]?\"]", "", data)

但是,我需要做什么才能同时包含“[”和“]”?

例如,假设数据输入为:

我希望输出看起来像这样

提前致谢。

假设您将“x”设为:

x <- c("Oh nooo!!! I don't like lemons [sad]", "What do [you] think about it?!")

你可以试试:

gsub("[^\[\]\?[:^punct:]]", "", x, perl = TRUE)
# [1] "Oh nooo I dont like lemons [sad]" "What do [you] think about it?"