如何使用 preg_grep 查找 url

How to use preg_grep to find urls

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

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

到目前为止我试过了

<?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

我该如何编辑? 谢谢

使用这个:

preg_grep(sprintf('/%s/', preg_quote($pattern[1])), $files);

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

要么使用单引号:

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

或转义d前的反斜杠:

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