我有表示文件路径的字符串。像这样的东西。
folder1/folderA/file1.flv folder2/folderB/file1.mp4 folder3/folderC/file1.jpg
我正在尝试编写一个基本匹配有效扩展名列表的表达式,例如.flv
,.mp4
,.flv
我相信我离开这里,但这就是我所拥有的.[(\.flv/)|(\.wmv/)|(\.mp4)]
滑稽,我敢肯定......但希望能够展示出这个要点。
答案 0 :(得分:4)
作为正则表达式的替代方法,您可以使用pathinfo()
,它可以从路径中可靠地获取文件扩展名。
$allowed_extensions = array("flv", "mp4", "mpeg"); # note: all lowercase
$ext = pathinfo("/folder1/folderA/file1.flv", PATHINFO_EXTENSION);
# Search array of allowed extensions
if (in_array(strtolower($ext), $allowed_extensions))
echo "Okay";
else
echo "Fail";
答案 1 :(得分:0)
如果我正确地解释它,你可能只想要这样的东西:
/[.](flv|mp4|wmv)$/
$
确保它在字符串/文件名的末尾匹配。替代品列在parens中,[.]
只是\.
答案 2 :(得分:0)
$str = "folder1/folderA/file1.jpg";
$found = preg_match("/[.]+(jpg|flv)$/", $str, $returns);
print_r ($returns);