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

标签 regex r

这个问题在这里已经有了答案:





What regex will match every character except comma ',' or semi-colon ';'?

(4 个回答)


5年前关闭。




我如何 gsub() 除了 R 中的指定字符之外的所有内容?

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

"the quick brown fox jumps over a lazy dog"

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

假设所有字符都是小写,我该怎么做。我试过...
gsub(!"r","",gsub(!"o","",str1))

但是“!”不起作用。

最佳答案

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

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

如果我们有一个值向量,我们可以用 paste 创建模式
v1 <- c("r", "o")
gsub(paste0("[^", paste(v1, collapse=""), "]+"), "", str1)
#[1] "roooro"

关于regex - gsub() 除指定字符外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38712946/

相关文章:

javascript - 使用 ng-pattern 验证纬度和经度值

Java正则表达式去除分隔字符串中的所有前导零

r - 使用 openxlsx 将日期写入 excel 表作为具有自定义样式的日期格式

r - 如何从 R 中的向量中选择最高和最低值的 10%?

R 用户:如何卸载使用 devtools::install_github ("username/repo"安装的软件包)

regex - 如何让我的 Perl one-liner 仅显示文件中的第一个正则表达式匹配项?

python - 为什么这个提供的正则表达式返回 true?

regex - 从字符串中提取第一个单词 - 正则表达式

r - ggplot position_dodge 带有多个误差线

R igraph 图密度、直径、偏心率和最短路径