文件名中的 PHP 全球数字范围


php glob number range in filename

我已经检查了另外两个答案,但似乎无法匹配文件名中的一系列数字

我需要将 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]}匹配空字符串或非零数字。然后,后面跟任何数字。因此,对于空字符串,它匹配09,而对于非零数字,它匹配1099