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

R语言如何批量去除文件名固定前后缀提取指定内容

R 提取固定前后缀字符串核心内容实现方案

你可以根据自己的使用习惯选择以下任意一种方案,都可以直接运行得到预期结果:

  • 基础R原生方案(无需安装任何第三方包,兼容性最好)
    逻辑是通过正则匹配固定的前缀、后缀做替换,推荐用单次捕获的写法,代码简洁效率高:

    # 构造示例数据(和提供的测试数据完全一致)
    df<-data.frame(
      Tables=c("Export_A1.xlsx","Export_A2.xlsx","Export_A10.xlsx"))
    
    # 单次正则捕获前后缀中间的核心内容
    df$core_name <- sub("^Export_(.*)\\.xlsx$", "\\1", df$Tables)
    

    如果觉得正则不好记,也可以拆成两步替换,逻辑更直白:

    df$core_name <- gsub("^Export_", "", df$Tables) # 移除固定前缀
    df$core_name <- gsub("\\.xlsx$", "", df$core_name) # 移除固定后缀
    

    注意正则里的^代表字符串开头、$代表字符串结尾,能避免误删文件名中间偶然出现的Export_或者.xlsx字符

  • 工具包简化方案(适合日常做大量数据清洗的场景)
    如果你日常用tidyverse生态做数据处理,可以用stringr包降低正则写错的概率,代码可读性更强:

    # 首次使用先安装:install.packages("stringr")
    library(stringr)
    df$core_name <- str_remove(df$Tables, "^Export_") |> 
      str_remove("\\.xlsx$")
    

    如果是处理真实的文件路径,还可以用R自带的tools包专门处理文件扩展名的函数,不用自己写后缀的正则:

    # tools是R内置包,无需单独安装
    df$core_name <- sub("^Export_", "", tools::file_path_sans_ext(df$Tables))
    

以上任意一种方法运行后,得到的数据框结果如下,完全匹配预期效果:

Tables core_name
1  Export_A1.xlsx        A1
2  Export_A2.xlsx        A2
3 Export_A10.xlsx       A10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:21:34