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

如何用gsub从文件名中提取首个整数?

提取文件名中的目标数字

你可以通过以下几种方式同时完成前后多余字符的去除,得到目标结果23:

方法1:链式调用两次gsub

先去除开头的非数字内容,再去除结尾的多余部分:

digs = "filepath/23-00.xlsx"
gsub("\\-\\d+\\.xlsx$", "", gsub("^\\D+", "", digs))
[1] "23"

方法2:使用单个正则表达式(推荐)

利用正则捕获组直接提取中间的数字部分,一次完成替换:

digs = "filepath/23-00.xlsx"
sub("^\\D+(\\d+)\\-\\d+\\.xlsx$", "\\1", digs)
[1] "23"

这里的正则逻辑是:

  • ^\\D+ 匹配文件名开头所有非数字的内容
  • (\\d+) 捕获我们需要保留的连续数字(也就是23)
  • \\-\\d+\\.xlsx$ 匹配数字后面的-00.xlsx部分
  • 最后用\\1替换整个字符串,只保留捕获到的数字

方法3:提取所有数字再截取对应部分

如果文件名里只有这一组需要的连续数字,也可以直接提取所有数字字符后截取:

digs = "filepath/23-00.xlsx"
substr(gsub("\\D", "", digs), 1, 2)
[1] "23"

不过这种方法依赖目标数字的长度固定,灵活性不如前两种。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:01:10