preg_match_all正则表达式子域名

时间:2011-12-07 23:09:01

标签: regex preg-match-all subdomain

嗨我有这个正则表达式匹配ursl,但我也需要匹配子域名。

public function getUrls($url){
     preg_match_all( "#(www\.|https?:\/\/){1}[a-zA-Z0-9]{2,}\.[a-zA-Z0-9]{2,}(\S*)#i",$url, $matches );
     return $matches[0];
}  

此匹配http://domain.com但不是http://sub.domain.com

知道如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:1)

[a-zA-Z0-9]{2,}\.替换为([a-zA-Z0-9]{2,}\.)+。但是正则表达式匹配了许多无效域,并且可能也不匹配所有有效的URL。如果你正在使用的语言提供它,那么为网址使用适当的解析器库会更明智。