正则表达式提供了一种从复杂字符串(包括 URL)中提取数据的强大方法。无论您是否使用包含“http://www”前缀的 URL,全面的正则表达式都可以满足您的需求。
以下表达式经过精心设计,可匹配带或不带“http”的 URL ://www" 前缀:
((https?|ftp)://)?([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)?([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))(:[0-9]{2,5})?(/([a-z0-9+$_%-]\.?)+)*/?(\?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)?(#[a-z_.-][a-z0-9+$%_.-]*)?
此表达式包含以下组件:
要使用此表达式,您可以使用下面的 PHP 代码:
if(preg_match("~^$regex$~i", 'www.example.com/etcetc', $m)) var_dump($m); if(preg_match("~^$regex$~i", 'http://www.example.com/etcetc', $m)) var_dump($m);
无论是否存在“http://www”前缀,此代码都会成功匹配两个 URL。
以上是如何使用正则表达式检测不同格式的 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!