gsub()除指定字符外的所有内容?

时间:2016-08-02 06:11:55

标签: regex r

除了R?

中的指定字符外,我如何gsub()所有内容?

在我的问题中,我有以下字符串......

"the quick brown fox jumps over a lazy dog"

我必须通过删除除“' r'之外的所有字符来生成新字符串。和' o'并得到以下输出...

"roooro"

假设所有字符均为小写,我该如何处理。我试过......

gsub(!"r","",gsub(!"o","",str1))

但是'!'不起作用。

1 个答案:

答案 0 :(得分:8)

我们需要在^内使用[来匹配除ro之外的所有字符。在这里,[^ro]+意味着匹配一个或多个不是'r'或'o'的字符,并将其替换为空白("")。

gsub("[^ro]+", "", str1)
#[1] "roooro"

如果我们有一个值向量,我们可以使用paste

创建模式
v1 <- c("r", "o")
gsub(paste0("[^", paste(v1, collapse=""), "]+"), "", str1)
#[1] "roooro"