php 文件名中的 glob 编号范围

php glob number range in filename

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

我需要将 1.jpg 匹配到 99.jpg(没有前导零,也没有前缀或后缀),只是简单的 digits.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);

我已经在 and php glob pattern match for arbitray number of digits

中查看了解决方案

试试这个:

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

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