请教个正则规则~我要从一堆字符中提取出网址

szgekko 2009-11-04 01:23:57
例如

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

请问这个正则要如何写!?
...全文
127 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
knight0450 2009-11-05
  • 打赏
  • 举报
回复
根本就不用正则

[Quote=引用 3 楼 foolbirdflyfirst 的回复:]
这个是php的serialize函数序列化数组生成的序列化串。
反解成数组就用unserialize函数。
[/Quote]
wcqqq 2009-11-05
  • 打赏
  • 举报
回复
一定要正则吗?
<?php

$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>';
?>

Siramizu 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 foolbirdflyfirst 的回复:]
这个是php的serialize函数序列化数组生成的序列化串。
反解成数组就用unserialize函数。
[/Quote]
正解
程序猿之殇 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 foolbirdflyfirst 的回复:]
这个是php的serialize函数序列化数组生成的序列化串。
反解成数组就用unserialize函数。
[/Quote]
阿_布 2009-11-04
  • 打赏
  • 举报
回复


<?php
$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);
?>

foolbirdflyfirst 2009-11-04
  • 打赏
  • 举报
回复
这个是php的serialize函数序列化数组生成的序列化串。
反解成数组就用unserialize函数。
szgekko 2009-11-04
  • 打赏
  • 举报
回复
感谢LS的回复

抱歉 不是!这个是我从数据库中读取的一个字段~
shaozi110 2009-11-04
  • 打赏
  • 举报
回复
这个是JSON吧?!
如果是的话
PHP中 使用 json_decode() 用这个函数来解析

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧