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

R语言求助:如何提取斜杠/前、中间及最后的字符串?

拆分带斜杠的字符串解决方案

先定义目标字符串:

x <- "123/456/789"

1. 获取第一个斜杠/之前的内容

基础R实现

用gsub匹配第一个斜杠及后续所有内容,替换为空:

gsub("/.*", "", x)  # 输出 "123"

或者用strsplit拆分后取第一个元素:

strsplit(x, "/")[[1]][1]  # 输出 "123"

stringr包实现

用str_remove移除斜杠及后续内容:

stringr::str_remove(x, "/.*")  # 输出 "123"

或者用str_extract提取开头到第一个斜杠前的非斜杠字符:

stringr::str_extract(x, "^[^/]+")  # 输出 "123"

2. 获取两个斜杠/之间的内容

基础R实现

用gsub同时移除开头到第一个斜杠、以及最后一个斜杠到结尾的内容:

gsub("^.*/|/.*$", "", x)  # 输出 "456"

或者拆分后取第二个元素:

strsplit(x, "/")[[1]][2]  # 输出 "456"

stringr包实现

用正则预查匹配两个斜杠之间的内容:

stringr::str_extract(x, "(?<=/)[^/]+(?=/)")  # 输出 "456"

或者拆分后取第二个元素:

stringr::str_split(x, "/")[[1]][2]  # 输出 "456"

3. 获取最后一个斜杠/之后的内容

基础R实现

用gsub移除最后一个斜杠之前的所有内容:

gsub(".*/", "", x)  # 输出 "789"

或者拆分后取第三个元素:

strsplit(x, "/")[[1]][3]  # 输出 "789"

stringr包实现

用str_remove移除最后一个斜杠及之前的内容:

stringr::str_remove(x, ".*/")  # 输出 "789"

或者用str_extract提取结尾的非斜杠字符:

stringr::str_extract(x, "[^/]+$")  # 输出 "789"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:32:55