在R中使用正则表达式删除字符串中除指定单词以外的所有字符

时间:2019-04-18 01:09:14

标签: r regex

使用R编程语言,我希望能够使用gsub函数删除除两个或三个指定单词以外的所有字符。

我尝试了多种使用后向查找\\ bMyWord \\ b和脱字符号^的方法。

gsub("fbnmobile.*", "" , "fbnmobile akinremi temitope akinfemi gotvnspectran fbn akinremi temitope a and akinsanya arinola o ")

所需的输出:

“ fbnmobile gotvnspectran fbn”

我想要一个模板,以便在删除所有其他字符时可以添加或删除整个单词。在这种情况下,我将指定删除单词“ fbnmobile”,“ gotvnspectran”和“ fbn”以外的所有字符。

此外,我很乐意接受有关R的正则表达式权威指南的建议。

1 个答案:

答案 0 :(得分:3)

提取可能会更容易。在|中的str_extract_all中指定要用OR(stringr)提取的单词模式,然后paste将提取的单词提取为单个字符串

library(stringr)
paste(str_extract_all(str1, "\\b(fbnmobile|gotvnspectran|fbn)\\b")[[1]], collapse=" ")
#[1] "fbnmobile gotvnspectran fbn"

或使用gsub

gsub("\\s{2,}", " ", trimws(gsub("\\b(fbnmobile|gotvnspectran|fbn)\\b(*SKIP)(*F)|\\w+", "", str1, perl = TRUE)))
#[1] "fbnmobile gotvnspectran fbn"

daa

str1 <- "fbnmobile akinremi temitope akinfemi gotvnspectran fbn akinremi temitope a and akinsanya arinola o "