例如a:2:{s:4:"link";s:118:"http://v.youku.com/v_s ...NzIyMDU2.html";s:4:"data";s:47:"http://v.youku.com/v_show/id_XMTI5NzIyMDU2.html";}我想提取出 这串字符中 最后面的网址
即:http://v.youku.com/v_show/id_XMTI5NzIyMDU2.html请问这个正则要如何写!?
即:http://v.youku.com/v_show/id_XMTI5NzIyMDU2.html请问这个正则要如何写!?
如果是的话
PHP中 使用 json_decode() 用这个函数来解析
反解成数组就用unserialize函数。
$str = "a:2:{s:4:\"link\";s:118:\"http://v.youku.com/v_s ...NzIyMDU2.html\";s:4:\"data\";s:47:\"http://v.youku.com/v_show/id_XMTI5NzIyMDU2.html\"";
$str = str_replace("\"","'",$str);
preg_match_all("/http:\/\/[^\/]+?\/[^\/]+?\/[^\.]+\.html'$/",$str,$matchs);
print_r($matchs);
?>
$str = "a:2:{s:4:\"link\";s:118:\"http://v.youku.com/v_s ...NzIyMDU2.html\";s:4:\"data\";s:47:\"http://v.youku.com/v_show/id_XMTI5NzIyMDU2.html\"a:2:{s:4:\"link\";s:118:\"http://v.youku.com/v_s ...NzIyMDU2.html\";s:4:\"data\";s:47:\"http://v.youku.com/v_show/id_XMTI5NzIyMDU2s.html\""; $str = str_repeat($str . '"http://www.csdn.net/"', 5); //匹配一个以http:为开头,并以"或'结尾的url,加上一个正向负零宽断言:没有三个相连的 "..."
preg_match_all('/http:\/\/(?![^\'"]*?\.{3}).*?(?=[\'"])/i' , $str , $ary); echo '<pre>'; print_r($ary); echo '</pre>';
?>