如何移除逗号分隔字符串中带额外符号的相似重复项?
移除逗号分隔字符串中的相似重复项(R语言实现)
解决方案步骤:
- 拆分并清理字符串:将原始字符串按逗号分割,同时去除每个元素前后的空格
- 提取核心内容:移除每个元素末尾的特殊标记(如†、*),得到用于判断重复的核心文本
- 筛选唯一项:基于核心内容去重,保留每组相似项的第一个原始元素
- 合并结果:将筛选后的元素重新组合为逗号分隔的字符串
完整代码:
# 原始字符串 words <- c("Hello, Hello, At desk (Idle), At desk (Idle)†, On floor (Active), On floor (Active)†, In meeting (Advisors), In meeting (Advisors)*, Day off (Birthday), Day off (Birthday)†") # 1. 拆分字符串并清理空格 split_words <- strsplit(words, ",")[[1]] |> trimws() # 2. 提取核心内容(移除末尾的†、*标记) core_content <- gsub("([†*])$", "", split_words) # 3. 筛选非重复的项 unique_words <- split_words[!duplicated(core_content)] # 4. 合并为目标字符串 result <- paste(unique_words, collapse = ", ")
运行后result的输出即为期望结果:"Hello, At desk (Idle), On floor (Active), In meeting (Advisors), Day off (Birthday)"
扩展说明:
如果需要处理其他末尾特殊标记,只需修改正则表达式中的字符集即可,比如要处理#结尾的项,将gsub的正则改为([†*#])$即可。
内容的提问来源于stack exchange,提问作者user20751152
相关产品推荐
相关产品推荐

