如何从URL获取域名 [英] How to get domain name from URL

查看:34
本文介绍了如何从URL获取域名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从 URL 字符串中获取域名?

How can I fetch a domain name from a URL String?

+----------------------+------------+
| input                | output     |
+----------------------+------------+
| www.google.com       | google     |
| www.mail.yahoo.com   | mail.yahoo |
| www.mail.yahoo.co.in | mail.yahoo |
| www.abc.au.uk        | abc        |
+----------------------+------------+

相关:

推荐答案

我曾经不得不为我工作的公司编写这样的正则表达式.解决方案是这样的:

I once had to write such a regex for a company I worked for. The solution was this:

  • 获取每个 ccTLDgTLD 可用.您的第一站应该是 IANA.乍一看,来自 Mozilla 的列表看起来不错,但缺少 ac.uk 示例,因此它实际上并不可用.
  • 像下面的例子一样加入列表.警告:订购很重要!如果 org.uk 出现在 uk 之后,则 example.org.uk 将匹配 org 而不是 例子.
  • Get a list of every ccTLD and gTLD available. Your first stop should be IANA. The list from Mozilla looks great at first sight, but lacks ac.uk for example so for this it is not really usable.
  • Join the list like the example below. A warning: Ordering is important! If org.uk would appear after uk then example.org.uk would match org instead of example.

示例正则表达式:

.*([^\.]+)(com|net|org|info|coop|int|co\.uk|org\.uk|ac\.uk|uk|__and so on__)$

这非常有效,并且还匹配了 de.com 和朋友等奇怪的非官方顶级网站.

This worked really well and also matched weird, unofficial top-levels like de.com and friends.

优点:

  • 如果正则表达式是最佳排序的,则非常快

这个解决方案的缺点当然是:

The downside of this solution is of course:

  • 手写正则表达式,如果 ccTLD 更改或添加,则必须手动更新.乏味的工作!
  • 非常大的正则表达式,所以不太可读.

这篇关于如何从URL获取域名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆