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

Gau*_*rav 4 regex r

除了R中的指定字符外,我如何gsub()除了?

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

"the quick brown fox jumps over a lazy dog"
Run Code Online (Sandbox Code Playgroud)

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

"roooro"
Run Code Online (Sandbox Code Playgroud)

假设所有字符都是小写的,我该如何处理.我试过了...

gsub(!"r","",gsub(!"o","",str1))
Run Code Online (Sandbox Code Playgroud)

但是'!' 不起作用.

akr*_*run 8

我们需要在^里面使用[来匹配除了之外的所有字符ro.这里,[^ro]+暗示匹配一个或多个不是'r'或'o'的字符,并用blank("")替换它.

gsub("[^ro]+", "", str1)
#[1] "roooro"
Run Code Online (Sandbox Code Playgroud)

如果我们有一个值向量,我们可以创建模式 paste

v1 <- c("r", "o")
gsub(paste0("[^", paste(v1, collapse=""), "]+"), "", str1)
#[1] "roooro"
Run Code Online (Sandbox Code Playgroud)