用于url格式的正则表达式(www.domain.tld到anchors)

时间:2010-05-19 22:11:32

标签: php regex url formatting href

我目前正在开发一个基于浏览器的Twitter小部件。

目前,我仍然坚持让URL工作。我有点新手,当涉及到正则表达式时(我知道,如何获取字符串的一部分,但这一个 - 很难)。

所以,我需要一个搜索/替换

的正则表达式
www.domain.tld -> <a href="http://www.domain.tld">http://www.domain.tld</a>

有/无http://,最好是。

欢迎任何建议。感谢。

4 个答案:

答案 0 :(得分:0)

这是我有多远:

www\.(?:\S*)\.(?:\S{2,3})

它检查www。在开始时,任何非空白字符和顶级域(2或3个字符)。

答案 1 :(得分:0)

我正在与RegExes进行一场永远的战争,我不喜欢他们。那么,我是否会这样做:

function get_domain_from_anchor($anchor, $delimiter = '"') {
    return substr(strstr(strstr($anchor, $delimiter), $delimiter.'>', true), 8);
}

echo get_domain_from_anchor('<a href="http://www.domain.net">http://www.domain.net</a>');

// OUTPUTS: www.domain.net

好多了:D

答案 2 :(得分:0)

我相信这正是您所寻找的:PHP validation/regex for URL

有关提取网址的更多信息:Extract URLs from text in PHP

答案 3 :(得分:0)

试试twitter-text-php。它从官方Twitter代码移植到PHP。

来自README文件:

$autolinker = new Twitter_Autolink();
$html = $autolinker->autolink("Tweet mentioning @mikenz and refuring to his list @mikeNZ/sports and website http://mikenz.geek.nz");
echo $html;