Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找相似的命名文件_Php_Regex_Glob - Fatal编程技术网

Php 查找相似的命名文件

Php 查找相似的命名文件,php,regex,glob,Php,Regex,Glob,在PHP中,如何搜索具有类似名称的文件?有三个文件:file.csv、file.csv.1和olderfile.csv 如何查找文件file.csv和file.csv.1?您可以使用此功能。这应该适用于您提到的文件: foreach (glob("file.csv*") as $filename) { echo "$filename\n"; } 取决于您如何定义“相似”,并尝试使用正则表达式 $filename = basename("/some/long/path/file.csv"

在PHP中,如何搜索具有类似名称的文件?有三个文件:
file.csv
file.csv.1
olderfile.csv

如何查找文件
file.csv
file.csv.1

您可以使用此功能。这应该适用于您提到的文件:

foreach (glob("file.csv*") as $filename) {
    echo "$filename\n";
}
取决于您如何定义“相似”,并尝试使用正则表达式

$filename = basename("/some/long/path/file.csv");
// Or other vars pointing to your actual file.

$pattern = '/(^file\.csv(?:\.\d|))/';

if(preg_match($pattern, $filename, $matches)){
    print_r($matches);
} else {
    echo "Not found.";
}

嘿我知道地球仪。但是它在Windows中不起作用。嗯,它也应该在Windows上起作用,除非glob规则可能不同。您可以发布实际的代码吗?请检查结果中是否不应包含“olderfile.csv:
glob(“file.csv*”)
Right,如果不应包含olderfile.csv,则模式将确实如@Yosvellquintero所述。我正在更新答案,“相似”的规则是什么?
file.csv
file1.csv
file.csv.1
1file.csv
都类似吗?我同意regex。像这样的模式将匹配所有提到的情况,甚至像file1.csv:
/^[\w\/]*\/([\w\d\]*file[\d\.]*\.csv\.?[0-9]?)/
我不确定它需要多复杂,所以只需提供一个简单的模式。当然,如果需要的话,它可能会更复杂。