如何以特定方式匹配包含ID的文件名?

时间:2015-12-24 21:45:41

标签: php regex string preg-match

我有图片文件名,我试图通过名字中包含的某个ID($id)找到它们。

文件名始终具有相同的结构:

something-$id(optional: numbers)(optional: -something).jpg

现在我要匹配所有包含id的文件名,其格式如上所述。

我尝试了以下内容,以strpos()找到ID:

$s = substr($file, strpos($file, $id), strlen($id));

但即使它前面有数字,这也会找到id,例如$id = 230和文件名包含2230。但是如上面的格式所述,在id之前不能有任何数字。

我可以在没有正则表达式的情况下执行此操作来查找文件名,其中包含特定格式的id或者我应该使用正则表达式,如果是,如何?

1 个答案:

答案 0 :(得分:2)

正则表达式在这里更灵活,所以这样的东西对你有用:

$pattern = "/^.*-$id(\d*)?(-.*)?\.jpg$/";

然后,您可以将其与preg_match()一起使用,例如

if(preg_match($pattern, $input)){
    //It matches
}