我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