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

请求编写R Studio脚本:用CSV内容批量替换TXT文本内容

我来帮你完善这个R脚本,刚好能满足你给TRPG Wikidot页面添加悬浮释义的需求!

完整R脚本及说明

首先先确认你的TL.csv结构:第一列是需要替换的术语(比如Talent),第二列是对应的释义内容。假设你的CSV表头是Term(术语列)和Definition(释义列),如果实际表头是A1/B1,后面代码里对应调整列名即可。

# 设置工作目录(确保TL.csv、TEST.txt都在这个路径下)
setwd("C:/Users/Alex/Documents/RWork")

# 读取替换规则CSV文件
TLData <- read.csv(file = "TL.csv", header = TRUE, sep = ",")

# 读取目标TXT文件的全部内容,保留原换行结构
original_content <- readLines("TEST.txt", warn = FALSE)
# 合并为单个字符串方便全局替换(后续写入时会自动还原换行)
full_text <- paste(original_content, collapse = "\n")

# 遍历每一条术语-释义对,生成Wikidot悬浮格式并替换
for (i in 1:nrow(TLData)) {
  target_term <- TLData$Term[i]
  term_definition <- TLData$Definition[i]
  # 构造Wikidot悬浮代码模板
  replacement_code <- paste0('[[span class="hover"]] ', target_term, ' [[span]] ', term_definition, ' [[/span]][[/span]]')
  # 精确替换术语(fixed=TRUE避免正则匹配干扰,比如不会误替换包含该术语的其他词)
  full_text <- gsub(pattern = target_term, replacement = replacement_code, x = full_text, fixed = TRUE)
}

# 将修改后的内容写入输出文件
writeLines(full_text, "TESTOUTPUT.txt")

# 控制台提示完成
cat("替换完成!已生成TESTOUTPUT.txt文件\n")

关键细节说明

  • 精确匹配:fixed=TRUE参数确保只会替换完全匹配的术语,比如不会把Talented里的Talent误替换掉;如果需要忽略大小写匹配,可以添加ignore.case=TRUE。
  • 保留格式:用readLines和writeLines配合paste(collapse="\n"),能完美保留原TXT文件的换行和段落结构。
  • 灵活适配:如果你的CSV列名不是Term/Definition,比如是A1/B1,只需要把代码里的TLData$Term改成TLData$A1,TLData$Definition改成TLData$B1即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:59:02