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

咨询:能否用Groovy实现带日期戳文件名的格式转换

当然可以实现!

作为Groovy新手,用字符串处理+正则表达式就能轻松搞定这个文件名转换需求,给你两种实用的实现方式:

方法一:拆分匹配后重组

这种方式更直观,适合新手理解每一步的处理逻辑:

def originalFileName = "saledata20180429"
// 用正则把文件名拆成「前缀+年+月+日」四个部分
def matcher = originalFileName =~ /(.*)(\d{4})(\d{2})(\d{2})/

if (matcher.matches()) {
    def prefix = matcher[0][1]    // 提取前缀:saledata
    def year = matcher[0][2]      // 提取年份:2018
    def month = matcher[0][3]     // 提取月份:04
    def day = matcher[0][4]       // 提取日期:29
    
    def newFileName = "${prefix}-${year}-${month}-${day}.txt"
    println newFileName // 输出结果:saledata-2018-04-29.txt
}

方法二:一键替换(更简洁)

利用Groovy的replaceAll方法,用正则直接替换日期部分,一步到位:

def originalFileName = "saledata20180429"
def newFileName = originalFileName.replaceAll(/(\d{4})(\d{2})(\d{2})/, '-$1-$2-$3.txt')
println newFileName // 同样输出:saledata-2018-04-29.txt

小提示

如果你的文件名前缀不是固定的,只要日期部分是结尾的8位数字,这两种方法都能通用。如果前缀里也包含数字,可以微调正则表达式(比如指定匹配结尾的数字)来精准定位日期部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:23:53