Php 需要帮助调整带有维度的文件名的正则表达式吗
我在目录中有很多电影,文件名包含它们的维度Php 需要帮助调整带有维度的文件名的正则表达式吗,php,regex,filenames,Php,Regex,Filenames,我在目录中有很多电影,文件名包含它们的维度 描述符-800x600.mov 酷炫动画-720p.mp4 反应堆-1080p.mov 测试-640x480.mov 我想从#1中拿出800600。720来自#2,1080来自#3等 正在寻找一些帮助来调整我到目前为止得到的: $re = '/^(.*?)\-(\d{3,4})p+|(\d{2,4})x(\d{2,4})+\.mov|mp4$/'; preg_match($re, $filename ,$matches); #1的匹配:(得到一些我不
$re = '/^(.*?)\-(\d{3,4})p+|(\d{2,4})x(\d{2,4})+\.mov|mp4$/';
preg_match($re, $filename ,$matches);
#1的匹配:(得到一些我不需要的额外东西…?)
#2的匹配项:
很明显,我有点不对劲,任何意见都将不胜感激 你不必做一些复杂的事情。如果您的文件结构总是有“-”和扩展名,请拆分它们。乙二醇
$a = array("descriptor-800x600.mov", "cool_animation-720p.mp4", "reactor-1080p.mov","test-640x480.mov");
foreach ($a as $name){
$s = preg_split("/[-.]/",$name);
$what_i_want=$s[1];
$w = explode("x",$what_i_want);
print_r($w);
}
输出
$ php test.php
Array
(
[0] => 800
[1] => 600
)
Array
(
[0] => 720p
)
Array
(
[0] => 1080p
)
Array
(
[0] => 640
[1] => 480
)
你不必做一些复杂的事情。如果您的文件结构总是有“-”和扩展名,请拆分它们。乙二醇
$a = array("descriptor-800x600.mov", "cool_animation-720p.mp4", "reactor-1080p.mov","test-640x480.mov");
foreach ($a as $name){
$s = preg_split("/[-.]/",$name);
$what_i_want=$s[1];
$w = explode("x",$what_i_want);
print_r($w);
}
输出
$ php test.php
Array
(
[0] => 800
[1] => 600
)
Array
(
[0] => 720p
)
Array
(
[0] => 1080p
)
Array
(
[0] => 640
[1] => 480
)
感谢幽灵狗的帮助。将其缩小为更小的部分是一条路。感谢幽灵狗的帮助。将其缩小为更小的部分是一条出路。