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

在R语言中如何交换字符串内下划线前后的单词顺序

R语言实现下划线前后单词互换的方法
  • 方法1:正则表达式替换(推荐,处理效率更高)
    核心逻辑是通过捕获组匹配下划线前后的两个片段,直接反向拼接输出。单条字符串处理示例:
    sub("^(.*)_(.*)$", "\\2_\\1", "hello_wor")
    返回结果为 wor_hello

如果需要批量处理字符串向量,直接传入向量即可:

test_strings <- c("hello_wor", "hi_everyone", "test_case")
result <- sub("^(.*)_(.*)$", "\\2_\\1", test_strings)
# 输出结果:"wor_hello" "everyone_hi" "case_test"
  • 方法2:分割后反转拼接(逻辑更直观)
    如果不熟悉正则语法,可以先按下划线分割字符串,反转分割得到的片段后再用下划线拼接:
# 单条字符串处理函数
swap_underline <- function(input_str) {
  split_parts <- strsplit(input_str, "_")[[1]]
  paste(rev(split_parts), collapse = "_")
}

# 调用示例
swap_underline("hi_everyone")
# 输出:"everyone_hi"

# 处理字符串向量
test_strings <- c("hello_wor", "hi_everyone")
result <- sapply(test_strings, swap_underline, USE.NAMES = FALSE)

注意:以上两种方法默认适配输入仅含1个下划线的场景。如果输入存在多个下划线,正则方法会将第一个下划线前的内容作为第一部分、最后一个下划线后的内容作为第二部分互换,中间内容保持不变;分割反转方法会将所有下划线分隔的片段完全倒序,可根据实际需求调整规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:12:05