В моем проекте у меня есть несколько файлов .csv с именами доменов, таких как 1www.abc.com.csv
, 2www.abc.com.csv
,или же 1m.xyz.com.au.cs
v, 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
Как я могу редактировать?
Спасибо
Использовать этот:
preg_grep(sprintf('/%s/', preg_quote($pattern[1])), $files);
Строка внутри двойных кавычек оценивается и "\d"
В конце концов стало не так, как вы ожидаете.
Либо используйте одинарные кавычки:
preg_split('/(\d+)/' ...
или избежать обратной косой черты перед d
:
preg_split("/(\\d+)/" ...