从字符串中删除完全匹配的单词

时间:2014-04-22 06:23:23

标签: regex r

我想删除" amp"在下面的句子中。

原始

x <- 'come on ***amp*** this just encourages the already rampant mispronunciation of phuket'

我想要什么

x <- 'come on this just encourages the already rampant mispronunciation of phuket'

但是,如果我使用gsub,那么&#34; amp&#34;在&#34;猖獗&#34;将被删除,这不是我想要的情况。在这种情况下,我可以知道应该使用哪种功能吗?

> gsub("amp","", x)
[1] "come on  this just encourages the already rant mispronunciation of phuket"

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

gsub("\\bamp\\b","", x)
# [1] "come on  this just encourages the already rampant mispronunciation of phuket"

\\b表示字边界。

答案 1 :(得分:1)

您也可以将字符串拆分为单词,然后比较:

x <- 'come on this just encourages the already rampant mispronunciation of phuket'
split_into_words = strsplit(x, ' ')[[1]]
filtered_words = split_into_words[!split_into_words == 'amp']
paste(filtered_words, collapse = ' ')
[1] "come on this just encourages the already rampant mispronunciation of phuket"

答案 2 :(得分:0)

你可以找到前面有空格的“amp”的出现。

> gsub("\\samp", "", x)
## [1] "come on this just encourages the already rampant mispronunciation of phuket"

其中\\s表示空格。

更具可读性
> gsub(" amp", "", x)