-1

在我的项目中,我有多个 .csv 文件,其域名如1www.abc.com.csv, 2www.abc.com.csv, or 1m.xyz.com.au.csv, 2m.blackburneinvest.com.au.csv,3m.blackburneinvest.com.au.csv

我想*.csv用 preg_grep 在数组中搜索模式(不包括数字)。

到目前为止我试过这个

<?php
echo "<pre>";
$files = glob("*.csv");//gets list of all the .csv file names in dir
foreach ($files as $key => $value) 
{
    $pattern = preg_split("/(\d+)/", $value);//Spilts Number from rest file name
    $fl_array = preg_grep($pattern[1], $files);
}
print_r($fl_array);
?>

但是有了这个我得到一个错误说

Warning:  preg_grep(): Delimiter must not be alphanumeric or backslash

我该如何编辑?谢谢

4

2 回答 2

2

用这个:

preg_grep(sprintf('/%s/', preg_quote($pattern[1])), $files);
于 2015-01-07T12:49:28.150 回答
0

双引号内的字符串正在被评估,"\d"毕竟不是你所期望的。

要么使用单引号:

preg_split('/(\d+)/' ...

或在前面转义反斜杠d

preg_split("/(\\d+)/" ...
于 2015-01-07T12:49:36.483 回答