我有图片文件名,我正在尝试通过$id
它们名称中包含的一些id()查找它们。
文件名始终具有相同的结构:
something-$id(optional: numbers)(optional: -something).jpg
现在,我要匹配所有文件名,这些文件名包含id并采用上述格式。
我尝试了以下操作以找到ID strpos()
:
$s = substr($file, strpos($file, $id), strlen($id));
但这也会找到id,即使它前面有数字(例如$id = 230
,文件名包含)也是如此2230
。但是,如上述格式所述,ID之前不能有任何数字。
因此,我可以在没有正则表达式的情况下查找包含特定格式ID的文件名吗?还是应该使用正则表达式?
正则表达式在这里更灵活,因此类似这样的方法对您有用:
$pattern = "/^.*-$id(\d*)?(-.*)?\.jpg$/";
然后,您可以简单地将其与一起使用preg_match()
,例如
if(preg_match($pattern, $input)){
//It matches
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句