正则匹配中,如何匹配网址,但是要排除img里面的连接

各位大神
我有一大段文字

我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字http://segmentfault.com我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字<img src="http://segmentfault.com/img.j...我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字

如何写正则,只匹配上面的连接,忽视掉下面img里面的src里的连接?

阅读 2.7k
2 个回答
$str = 你的字符串
// 我仅仅使用了com、cn、net后缀,需要的话你用|隔开继续添加新的后缀
$reg = '/(?<!src=")(http[s]?:\/\/(?:[0-9a-z]+\.)+(?:com|cn|net))/i';
preg_match_all($reg, $str, $matches);

仅供参考,有错误请指出,谢谢~

为何不用xpath?

/html/body/p/text()搞定

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题