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

如何翻转以'-'分隔的数值对?适配不同长度数据的方案

解决分隔符'-'两侧数值翻转的问题

核心方案:使用gsub结合正则捕获组

你之前考虑的gsub完全能解决这个问题,关键是利用正则的捕获组匹配并交换-两侧的数值,无需复杂的拆分拼接操作。

步骤1:定义原始数据

myDat <- c("11-11 10-30", "1-1 30-29", "9-8", "1-1 1-1 1-3", "0-1 7-12", "5-8 20-45")

步骤2:执行翻转操作

myDat_processed <- gsub("(\\d+)-(\\d+)", "\\2-\\1", myDat)

正则逻辑说明

  • (\\d+):匹配一个或多个数字,第一个括号捕获-左侧的数值,第二个括号捕获右侧的数值
  • \\2-\\1:替换时将第二个捕获组(右侧数值)前置,连接-后再放置第一个捕获组(左侧数值),实现两侧数值翻转

查看处理结果

print(myDat_processed)
# 输出:
# [1] "11-11 30-10" "1-1 29-30"   "8-9"         "1-1 1-1 3-1" "1-0 12-7"    "8-5 45-20"

这个方法不受数值长度限制,只要是数字-数字的格式就能精准处理,比拆分拼接更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:36:12