嗨我有这个正则表达式匹配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
知道如何让它发挥作用吗?
答案 0 :(得分:1)
将[a-zA-Z0-9]{2,}\.
替换为([a-zA-Z0-9]{2,}\.)+
。但是正则表达式匹配了许多无效域,并且可能也不匹配所有有效的URL。如果你正在使用的语言提供它,那么为网址使用适当的解析器库会更明智。