You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R语言替换向量包含的字符为指定字符及取反操作

R语言实现指定字符替换及取反替换

先明确你的输入数据:

x <- "KDDADQHRQDKWKDEHENRFKDEFVDEKKK"
repo <- c("R", "H", "K", "D", "E")

1. 将属于repo的字符替换为?

把repo中的字符组合成正则表达式的字符类,用字符串替换工具就能完成全局替换:

方法一:使用stringr包(推荐,语法更直观)

library(stringr)
# 构造正则规则:匹配repo里的任意字符
pattern1 <- paste0("[", paste(repo, collapse = ""), "]")
result1 <- str_replace_all(x, pattern1, "?")
# 查看结果
cat(result1, "\n")
# 输出:???A?QHRQ??W?????N?F???FV?????

方法二:基础R原生函数gsub

result1_base <- gsub(paste0("[", paste(repo, collapse = ""), "]"), "?", x)

2. 将不属于repo的字符替换为?

只需要把正则字符类改成取反形式(在开头加^),逻辑和上面一致:

方法一:使用stringr包

pattern2 <- paste0("[^", paste(repo, collapse = ""), "]")
result2 <- str_replace_all(x, pattern2, "?")
# 查看结果
cat(result2, "\n")
# 输出:KDD?D?HR?DK?KDEHE?R?KDE??DEKKK

方法二:基础R原生函数gsub

result2_base <- gsub(paste0("[^", paste(repo, collapse = ""), "]"), "?", x)

简单说明:正则语法里,[abc]表示匹配a、b、c中的任意一个字符,[^abc]则表示匹配除a、b、c之外的所有字符,刚好对应你需要的两种替换场景。

内容的提问来源于stack exchange,提问作者littleworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:40:32