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

使用R语言匹配并移除字符串中第二次重复的内容

R语言移除字符串右侧重复片段并提取目标内容
  • 核心方案:利用反向引用正则匹配末尾重复的片段,捕获并保留前半段内容,再过滤无重复的字符串。

  • 关键正则:^(.*)\\s+\\1$

    • ^(.*):捕获字符串前半段的任意内容(即需要保留的部分)
    • \\s+:匹配分隔重复片段的一个或多个空格
    • \\1:反向引用捕获的前半段内容,确保后半段是完全重复的
    • $:锚定字符串结尾,保证重复片段在末尾
  • 完整代码实现:

names_vec <- c("Linda Smith","Elizabeth Olsen Green Elizabeth Olsen Green",
               "Eva Ferguson","Charlize Martinez White Charlize Martinez White",
               "digital copy solutions digitals",
               "honor security services honor security services")

# 匹配替换重复内容
matched_results <- sub("^(.*)\\s+\\1$", "\\1", names_vec)

# 过滤未匹配的无重复字符串
matched_vec <- matched_results[matched_results != names_vec]

# 输出结果
print(matched_vec)

运行后得到目标向量:

[1] "Elizabeth Olsen Green"     "Charlize Martinez White"   "honor security services"
  • 适配说明:如果重复片段的分隔符不是空格,只需将\\s+替换为对应分隔符(如逗号替换为\\,);若需匹配部分单词重复,可调整正则为^((.*\\s)?(\\w+))\\s+\\3$,但需根据实际场景验证。

内容的提问来源于stack exchange,提问作者Edwin Acuña

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:23:28