我已经检查了其他两个答案,但似乎无法匹配文件名中的一系列数字
我需要将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
中的解决方案答案 0 :(得分:2)
试试这个:
glob("$dir/{,[1-9]}[0-9].jpg", GLOB_BRACE);
GLOB_BRACE
选项告诉它识别大括号中的替代项,因此{,[1-9]}
匹配空字符串或非零数字。然后是任何数字。因此,对于空字符串,它匹配0
到9
,而非零数字则匹配10
到99
。