2

可能重复:
Linkify Regex 函数 PHP Daring Fireball 方法

我正在尝试从字符串中获取 URL,我有这个

$link_count = count(explode('http',$post));
if($link_count > 0){
    preg_match_all("#https?://[^.\s]+\.[^\s]+#ix", $note, $matches);
    foreach(){} etc..
}

这里的问题是我也希望能够检测到这样的 URL; http://www.link.com或 www.link.com 或 link.com 附注:我在这里搜索过类似的问题,但我还没有看到解决所有这些类型的 URL 的问题。

谢谢你。

4

2 回答 2

2

尝试

"/\b((http(s)?:\/\/)?(www\.[a-zA-Z0-9\/\\\:\?\%\.\&\;=#\-\_\!\+\~\,]*))/is

正如马里奥所说,没有协议前缀的链接在技术上不是链接。

于 2013-01-06T15:11:50.737 回答
1

试试这个正则表达式:

#(https?://)?([a-z0-9-]+\.)+[a-z0-9]+/?#i
于 2013-01-06T14:52:40.380 回答