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

如何在R语言中对分号分隔文本的每个单词首字母大写?

R语言实现文本单词首字母大写(含特殊格式处理)

需求描述

原始英文文本:

Cycling Refrigerated Thermal mass Dryer; No-loss Condensate Drain; storage tanks for load/no load screw compressors <50 HP

对应的中文翻译:

循环制冷热质干燥机;无损耗冷凝水排放装置;功率小于50马力的加载/空载螺杆压缩机储油罐

期望转换后的英文文本(每个单词首字母大写):

Cycling Refrigerated Thermal Mass Dryer; No-loss Condensate Drain; Storage Tanks for Load/No Load Screw Compressors <50 HP;

对应的中文翻译:

循环制冷热质干燥机;无损耗冷凝水排放装置;加载/空载螺杆压缩机储油罐(功率小于50马力)

实现方案

通过正则表达式结合gsub函数实现,兼容连字符、斜杠分隔的单词,同时保留已有大写的专业词汇:

# 定义原始文本
raw_text <- "Cycling Refrigerated Thermal mass Dryer; No-loss Condensate Drain; storage tanks for load/no load screw compressors <50 HP"

# 自定义首字母大写处理函数
capitalize_words <- function(text) {
  # 匹配单词边界、连字符或斜杠后的小写字母,转为大写
  gsub("(\\b|[-/])([a-z])", "\\1\\U\\2", text, perl = TRUE)
}

# 执行转换
processed_text <- capitalize_words(raw_text)

# 输出结果
cat(processed_text, "\n")

代码说明

  • 正则表达式(\\b|[-/])([a-z])精准匹配三种场景:单词开头的小写字母、连字符-后的小写字母、斜杠/后的小写字母。
  • \\U\\2将捕获到的小写字母转为大写,启用perl = TRUE支持Perl风格正则转义符。
  • 该方法不会修改已有大写的词汇(如HP),同时能正确处理No-loss、load/no这类特殊格式的单词。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 03:36:18