文件名为

时间:2016-03-03 17:35:51

标签: 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

中的解决方案

1 个答案:

答案 0 :(得分:2)

试试这个:

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

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