php 文件名中的 glob 数字范围

标签 php glob

我已经检查了其他两个答案,但似乎无法匹配文件名中的数字范围

我需要将 1.jpg 与 99.jpg 以内的任何内容匹配(没有前导零,没有前缀或后缀),只是简单的数字.jpg

glob("$dir/{1..99}.jpg", GLOB_BRACE);

我也尝试过:

glob("$dir/{" . implode(",", range(1, 99)) . "}.jpg", GLOB_BRACE);

以下仅匹配 1.jpg 到 9.jpg,但不匹配 10,11 等

glob("$dir/[0-9].jpg", GLOB_BRACE);

以下内容不匹配:

glob("$dir/[0-9]+.jpg", GLOB_BRACE);

我已经在 PHP glob range small issue why? 中检查过解决方案和 php glob pattern match for arbitray number of digits

最佳答案

试试这个:

glob("$dir/{,[1-9]}[0-9].jpg", GLOB_BRACE);

GLOB_BRACE 选项告诉它识别大括号中的替代项,因此 {,[1-9]} 匹配空字符串或非零数字。然后后面跟着任意数字。因此,对于空字符串,它匹配 09,对于非零数字,它匹配 1099 >.

关于php 文件名中的 glob 数字范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35779114/

相关文章:

sql - 检查约束失败

python - 使用glob递归获取终端子目录

php - 返回数组中的 MySQL 行

php - PHP 中的 session 变量消失

php - 通过 PHP 从 Postgres 正确读取 bool 值

PHP覆盖父类特征的特征方法

php - 无法返回多个 MySql 结果

Python 全局图像目录

powershell - 使用动态构造的排除模式数组,使用 Get-ChildItem -Exclude 过滤子文件夹

Python Glob.glob : a wildcard for the number of directories between the root and the destination