忽略R中gsub的单词之间的空格

时间:2015-03-01 09:27:25

标签: regex r

我想在空格中做很多变化的gsub。

我的文字是

Yes, please periodically send me e-mail updates

我想删除这句话。但是我的语料库中有很多变化。例如,我有

Yes, please periodically send me e-mail  updates
Yes, please periodically send me  e-mail updates
Yes, please periodically  send me e-mail updates

如何使用正则表达式删除这些句子?我试着像下面的代码一样指定每个案例。

gsub("Yes, please periodically send me  e-mail updates", "", text)        
gsub("Yes, please periodically send me e-mail  updates", "", text)        
gsub("Yes, please periodically  send me e-mail updates", "", text)        

我相信有一种更好的方法可以用一个代码删除这些句子。谢谢你的帮助!

3 个答案:

答案 0 :(得分:3)

使用[[:space:]]+匹配一个或多个空格。

gsub("Yes, please periodically[[:space:]]+send[[:space:]]+me[[:space:]]+e-mail[[:space:]]+updates", "", text)

答案 1 :(得分:2)

也许我误解了这个问题,但更换"是的,...更新"是不是更简单?覆盖所有可能的额外空间?

text <- c("Yes, please periodically send me e-mail  updates",
          "Yes, please periodically send me  e-mail updates", 
          "Yes, please periodically  send me e-mail updates")
gsub("^Yes,.*updates", "", text)
[1] "" "" ""

答案 2 :(得分:1)

library(magrittr)
text_to_remove <- "Yes, please periodically send me e-mail updates"
text %>% gsub([[:space:]]+, " ") %>% gsub(text_to_remove , "")

有点“愚蠢”的做法。分配要删除的字符串,不要使用double(triple等)空格。用单个空格替换初始文本的多个空格,然后用“”替换要删除的文本。