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

R语言如何提取字符串含连续重复字母的单词并统计最大重复次数

原有代码报错原因
  • strsplit()返回结果为列表,拆分后的单词存储在列表首个元素中,直接遍历列表会导致单次循环拿到全部单词的向量,而非单个单词
  • str_extract_all()返回结果为列表,直接和character(0)做等值判断会生成长度为0的逻辑值,触发if条件的长度报错,应通过length()判断提取结果长度是否大于0
完整实现代码

同时实现两个需求:提取含连续重复字母的单词、统计字符最大连续重复次数

library(stringr)

process_string <- function(input_text) {
  # 拆分输入字符串为独立单词
  word_list <- unlist(strsplit(input_text, "\\s+"))
  
  target_words <- c()
  repeated_chars <- c()
  
  for (word in word_list) {
    # 提取单词中所有连续重复的字母片段
    match_res <- str_extract_all(word, '([[:alpha:]])\\1+')[[1]]
    if (length(match_res) > 0) {
      target_words <- c(target_words, word)
      repeated_chars <- c(repeated_chars, match_res)
    }
  }
  
  # 计算最大连续重复次数,无重复时返回0
  max_repeat <- ifelse(length(repeated_chars) == 0, 0, max(nchar(repeated_chars)))
  
  return(list(
    含连续重复字母的单词 = target_words,
    最大连续重复次数 = max_repeat
  ))
}
测试验证

参考示例测试

res1 <- process_string("hello good home aboba")
res1$含连续重复字母的单词
# 输出:"hello" "good"
res1$最大连续重复次数
# 输出:2

你的测试文本验证

res2 <- process_string("tessst gfvdsvs bbbddsa daxz")
res2$含连续重复字母的单词
# 输出:"tessst"  "bbbddsa"
res2$最大连续重复次数
# 输出:3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:04