从 URL 中提取域名的正则表达式

我们可以这么理解域名的表达方式:由多个 [a-zA-Z0-9-]\. 这样的表达式组合,以 [a-zA-Z] 结尾。比如:

www.baidu.com

拆分:www.,baidu.,com

英文域名允许出现的字符有英文大小写,数字,下划线。有些网站不是在80端口上的,比如:

www.baidu.com:8080

综合上面,得出的正则表达式:

re.search(r'http(s)?://(([\w-]+\.)+\w+(:\d{1,5})?)',url)

然后 group(2) 即是提取出来的域名了。