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

R语言如何移除向量中连续重复的+符号并保留单个分隔符

报错的核心原因有两点:

  1. +是正则表达式的特殊量词,代表匹配前一个字符1次及以上,直接写++不符合正则语法规则,需要先转义才能匹配字面意义的+
  2. 你使用的sub()函数只会替换字符串中第一个匹配到的内容,无法处理多处连续重复的+

你可以直接使用全局替换函数gsub()实现需求,代码如下:

# 你的示例数据
df <- data.frame(name = c(A="a+++a+b+c++++d+d+d"))
# 全局替换所有连续的+为单个+
df$name <- gsub("\\++", "+", df$name)

上述正则规则中,\\+代表匹配字面意义的+,后面的+是正则量词,代表匹配前一个规则1次及以上,整体会匹配所有连续出现的+,统一替换为单个+,运行后即可得到你预期的a+a+b+c+d+d+d结果。

如果你习惯使用tidyverse生态的stringr包,也可以用等效写法:

library(stringr)
df$name <- str_replace_all(df$name, "\\++", "+")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 00:09:03