我正在使用具有一些FTP功能的第三方ETL工具,但它们很少(它被称为Pentaho)。
我需要做的就是从ftp站点下载最新的文件zip。网站内容如下所示:
...
File:tfo.supplement.20120901.done 9/1/2012 3:48:00 AM
File:tfo.supplement.20120901.zip 421144 KB 9/1/2012 3:48:00 AM
File:tfo.supplement.20120904.done 9/4/2012 3:57:00 AM
File:tfo.supplement.20120904.zip 421794 KB 9/4/2012 3:57:00 AM
File:tfo.supplement.20120905.done 9/5/2012 3:28:00 AM
File:tfo.supplement.20120905.zip 421875 KB 9/5/2012 3:28:00 AM
所以,在这种情况下,我想要tfo.supplement.20120905.zip文件。
第三方工具仅提供获取文件夹和正则表达式的get-file选项。它将获取与正则表达式匹配的目标FTP站点文件夹中的所有文件。
有人告诉我,有可能制作一个正则表达式,它将实际比较不同的匹配选项并输出最大值。例如。取所有以.zip结尾的tfo.supplement。*文件,并将中间的日期视为整数,选择具有最大整数的日期。
我不知道正则表达式可以支持这种功能。有人可以帮我构建一个我可以在这个用例中使用的表达式吗?
答案 0 :(得分:3)
s/\s(\d+)\/(\d+)\/(\d{4})\s/{$d = 10000*$3+100*$1+$2 if $d < 10000*$3+100*$1+$2}/eg;
测试此代码here。