我已经检查了另外两个答案,但似乎无法匹配文件名中的一系列数字
我需要将 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 全球范围内的解决方案 小问题为什么? 和 php 全球模式匹配任意位数
试试这个:
glob("$dir/{,[1-9]}[0-9].jpg", GLOB_BRACE);
GLOB_BRACE
选项告诉它识别大括号中的替代项,因此{,[1-9]}
匹配空字符串或非零数字。然后,后面跟任何数字。因此,对于空字符串,它匹配0
到9
,而对于非零数字,它匹配10
到99
。