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

如何在ADF复制活动中提取去除日期后的文件名?

在ADF复制活动接收器中移除文件名的日期前缀/后缀

核心思路

  • 拆分文件名的主体部分与扩展名部分,避免替换操作误改扩展名
  • 用正则匹配并移除两种日期模式:
    • 开头的8位数字+下划线(如20200405_)
    • 结尾的下划线+8位数字(如_20230423)
  • 重新拼接处理后的主体与扩展名

具体表达式实现

基础场景(文件名仅含一个点)

适用于20200405_Apples.xlsx、Bananas_20230423.txt这类单扩展名文件,将以下表达式填入接收器的文件名字段:

@concat(
    replace(
        replace(
            split(item().name, '.')[0],
            '^\\d+_', ''
        ),
        '_\\d+$', ''
    ),
    '.',
    split(item().name, '.')[1]
)

说明:

  • split(item().name, '.')[0]:提取不带扩展名的文件名主体
  • 第一个replace:移除开头的日期前缀(正则^\d+_匹配数字开头加下划线的片段)
  • 第二个replace:移除结尾的日期后缀(正则_\d+$匹配下划线加数字结尾的片段)
  • concat:拼接处理后的主体与原扩展名

通用场景(文件名含多个点)

如果文件名存在多个点(如20200405_Report.Q3.xlsx),需确保仅保留最后一个片段作为扩展名,使用以下表达式:

@concat(
    replace(
        replace(
            join(take(split(item().name, '.'), sub(length(split(item().name, '.')), 1)), '.'),
            '^\\d+_', ''
        ),
        '_\\d+$', ''
    ),
    '.',
    last(split(item().name, '.'))
)

说明:

  • join(take(split(item().name, '.'), sub(length(split(item().name, '.')), 1)), '.'):提取除最后一个扩展名外的完整主体
  • last(split(item().name, '.')):获取最后的扩展名部分

测试验证

应用表达式后,可得到以下转换结果:

  • 输入20200405_Apples.xlsx → 输出Apples.xlsx
  • 输入Bananas_20230423.txt → 输出Bananas.txt
  • 输入20210101_Sales.Report.pdf → 输出Sales.Report.pdf
  • 输入Inventory_20220630.csv → 输出Inventory.csv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:28:23