使用正则表达式解析url值时出错

时间:2014-07-28 19:52:11

标签: php regex

我正在使用正则表达式解析网址。有些网址没有完全显示。我使用以下代码。

如果$ string值在

之后它正在工作
$string= "[video width="1280" height="720" mp4="http://egghead-site.s3.amazonaws.com/samples/DOS.mp4" title="DOS Software"][/video]" ; 

如果mp4值跟随,那么它不起作用。它只返回半个网址。

$string =[video width="1280" height="720" mp4="http://egghead-site.s3.amazonaws.com/samples/Colon%20Health%20Final%20V3.mp4" title="Synergi" ][/video]";  

$imageurl = !empty( $string ) ? preg_match_all('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', $string , $match) : '';

return isset($match[0][0]) ? ut_portfolio_add_http($match[0][0]) : '';

我想获取视频网址。我是正则表达式的新手,所以我坚持这一点。请告诉我如何在两种情况下都能得到它。

1 个答案:

答案 0 :(得分:0)

我只是对你的正则表达式进行了一些小改动,它似乎正在准确地找到你想要的东西。见这里:

((https?:\/\/)+(.+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)