考虑以下字符串删除所有不必要的空间和一定的标点符号
str1 <- " say wut ?? "
我想删除单词和??
之间的所有额外的空间和装饰,整个事情
所以下面的作品完美
gsub("(^ *)|(+(?=))|($)", "", str1, perl = TRUE)
## [1] "say wut ??"
现在,如果我有以下字符串
str2 <- "[ ] say[] wut ?? [] "
我想达到以前的结果(我不要想要删除除了??
以外的所有标点符号,因为在现实生活中我也有其他标点符号,我想保留。换句话说,我只是想删除[]
和不必要的空格)
所以我已经试过以下,但我有我的前导空格后面
有趣的(或没有),当倒车正则表达式秩序,一切都弄糟更
gsub("(^ *)|\\]|\\[|(+(?=))|($)", "", str2, perl = TRUE)
## [1] "[ say wut ?? "
编辑:看来,我不太清楚,但是我正在寻找一个干净的正则表达式解决方案。我很清楚,你可以在几个步骤中几乎做任何事情(我已经这样做了),但这不是我正在寻找的。
这是我用什么到现在为止(两个步骤的解决方案):
gsub("(^ *)|(+(?=))|($)", "", gsub("\\]|\\[", "", x), perl = TRUE)
它似乎仍然会在'x < - '[说] w w ??' – 2014-11-02 08:55:51
@DavidArenburg看到更新。 – 2014-11-02 13:38:59
感谢您的更新 – 2014-11-04 09:07:09