如果是url-preg_匹配php

如果是url-preg_匹配php,php,preg-match,preg-match-all,Php,Preg Match,Preg Match All,我有这个功能: function isValidURL($url) { return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url); } 这个函数只返回不带WWW的url,我不知道如何编写这个正则表达式来查找所有带WWW或不带WWW的url,或带WWW和不带http/s的url tnx 使用内置功能。这是有道理的。正如其他人所指出的,您最好坚持使用PHP的filter函数\u v

我有这个功能:

function isValidURL($url)
{
    return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
这个函数只返回不带WWW的url,我不知道如何编写这个正则表达式来查找所有带WWW或不带WWW的url,或带WWW和不带http/s的url


tnx

使用内置功能。这是有道理的。

正如其他人所指出的,您最好坚持使用PHP的filter
函数\u var
。 但是,由于您永远不会有足够的正则表达式实践,下面是该解决方案的初始版本:

$regex = '|^(?:https?://)?[a-z0-9%-]+(?:\.[a-z0-9%-]+)*(?::[0-9]+)?(/[a-z0-9%-]+)?$|i'

这仍然需要进行一些微调,并且目前还没有考虑到所有允许的url字符,但这足以引导正确的方向。

您应该使用
parse_url()
显示一些示例输入和预期输出。你的解释很难理解。不要像我想的那样工作,它不会只给我链接。它只给我http/s而不是www。。。