preg_match&正则表达式找到的东西

时间:2014-03-22 12:11:37

标签: php regex preg-match preg-match-all

我想使用preg_match&正则表达式找到所有视频质量。所以我想搜索128,500,750,1000,1500像素的质量。我需要返回阵列中的所有质量。我该怎么办?

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=350000
128/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=750000
500/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1000000
750/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1250000
1000/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1750000
1500/prog_index.m3u8?key=49bfee85b05d117a2906368428094e94

3 个答案:

答案 0 :(得分:1)

您可以改用explode

$pixel_arr = array();
foreach(explode(PHP_EOL,$str) as $v)
{
    if(strpos($v,'/')!==false)
    {
        $v=explode('/',$v);
        $pixel_arr[]=array_shift($v);
    }
}
print_r($pixel_arr);

<强> OUTPUT :

Array
(
    [0] => 128
    [1] => 500
    [2] => 750
    [3] => 1000
    [4] => 1500
)

Demo

答案 1 :(得分:0)

如果您愿意,可以使用regexp执行此操作:

preg_match_all( '/([0-9]+)\//', $str, $matches );
print_r( $matches[1] );

但是,真的,爆炸会更快。

答案 2 :(得分:-1)

怎么样:

preg_match_all('/^\d+/m', $str, $m);