【问题标题】:preg_match_all regex subdomainspreg_match_all 正则表达式子域
【发布时间】:2011-12-07 23:09:00
【问题描述】:

您好,我有这个正则表达式来匹配 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

知道如何让它工作吗?

【问题讨论】:

标签: regex preg-match-all subdomain


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多