使用正则表达式对文件列表进行排序

问题描述 投票:2回答:1

我正在编写脚本来对文件列表进行排序,获取与特定文件名匹配的最新文件,然后将其复制到另一个文件夹。我正在用PHP编写此代码,然后将其设置为每天使用CRON在特定时间运行。

文件的命名如下:VS-order-export-105.xmlVS-order-export-104.xml当前-VS-订单-出口-105,xmlcurrent-VS-order-export.104.xml

我需要获取最新的这些文件,其格式为'order-export-(number).xml'。那些前缀为“ current-”的应忽略。

我似乎无法使Regex正确执行此操作。这是我所拥有的:

<?php $src = '/public_html/folder/exports/';
$files_src = scandir($src, SCANDIR_SORT_DESCENDING);
foreach($files_src as $file) {
    if (preg_match('/(^VS-), (.*)/A', $file) && !is_dir($src . $file)) {
        $newest_file_src = $files_src[1];
        $newest_file_path_src = $src . $files_src[1];
        $dest_file_path = '/public_html/orders/';
        rename($newest_file_path_src, $dest_file_path);
    }
} ?>

请有人指出我做错了吗?

提前感谢!

php regex preg-match
1个回答
0
投票

在您的模式中,您尝试将逗号与不存在的空格匹配。

© www.soinside.com 2019 - 2024. All rights reserved.