我desperatley試圖讓約翰格魯貝爾URL識別正則表達式正常工作!我寫的簡單函數總是返回false,即使是在其中的一個明顯的URL!我不能得到這個正則表達式正常工作
我想在2個不同的函數中測試任何url和web特定的url。我對Regexs相當陌生,所以這幾乎肯定是我的!
功能:
<?php
function isweburl($url)
{
return(preg_match("(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?: [^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`! ()\[\]{};:'\".,<>?«»「」‘’]))", $url));
}
function isanyurl($url)
{
echo "suspected url:$url<br>";
return(preg_match("/(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?: [^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`! ()\[\]{};:'\".,<>?«»「」‘’]))/", $url));
}
$test=isanyurl('http://www.sega.com');
var_dump($test);
echo "<br>web test:<br>";
$test=isweburl('http://www.sega.com');
var_dump($test);
?>
在此先感謝您的幫助!
http://stackoverflow.com/questions/2490310/regular-expression-for-checking-website-url - 這應該是你在找什麼。 – David
[相同的問題](http://stackoverflow.com/questions/2025095/url-matching-using-grubers-regex-in-php) – elias
原始表達式,我想要工作,在:[鏈接](http://daringfireball.net/2010/07/improved_regex_for_matching_urls) – user1427029