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

如何修改substr函数实现从字符串第29位截取至首个连字符前内容

实现方法

直接调整substr的参数就能实现需求,不需要额外安装依赖包:

# 基于你原有substr逻辑修改
city_names <- substr(sample_list, start = 30, stop = regexpr("-", sample_list) - 1)

参数逻辑:

  • 你之前写的start=1, stop=29是截取前29位的固定前缀,现在把起始位置改成30,就是从前缀结束后的第一个字符开始截取
  • regexpr("-", sample_list)会批量返回每个URL里第一个连字符-所在的字符位置,减1之后就是连字符前最后一个字符的索引,正好作为截取的结束位置

运行这段代码得到的结果就是你需要的city1、acity2、bbcity3、ccccity4、dddddcity5。

如果不想硬编码前缀长度,避免后续前缀改动时还要重新数字符位置,可以直接用正则匹配提取,适配性更强:

# 正则方案,无需手动计算字符位置
city_names <- sub("^http://www.website.ca/extra/([^-]+)-.*", "\\1", sample_list)

这段代码会直接匹配固定前缀后、第一个-前的所有连续字符,直接提取为结果,只要URL整体结构不变,哪怕前缀长度调整也能正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:09:21