此regex preg_grep模式对Windows文件路径正确吗?

时间:2019-01-03 17:38:46

标签: php regex

我正在用已有的代码来处理PHP中的目录删除,有一种功能可以保留某些目录,该功能使用preg_grep来查看glob()中的目录列表是否与该模式匹配。但是,我已经对其进行了测试,它似乎根本无法正常工作,至少在Windows上无法正常工作

我对regex并不是很熟悉,但是在我看来,问题出在Windows在路径中使用反斜杠的方式。

foreach( $dirs_to_preserve as $dir_to_preserve) {
    $matches = preg_grep( "#^$dir_to_preserve$#", $dirs)

该函数正在获取以下参数:

$dirs = [ 'C:\xampp\htdocs\test/cache/domain.com/en' ];
$dirs_to_preserve = [ 'C:\xampp\htdocs\test/cache/domain.com(.*)/en' ];

$ dirs_to_preserve数组是由PHP生成的,清除缓存时,正在从glob()中读取$dirs,上面的数据应该匹配,尽管应该删除{/ { 1}}为空。

0 个答案:

没有答案