如何从URL中获取域名

2024-02-25

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

例子:

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

Related:

  • 通过正则表达式匹配网址 https://stackoverflow.com/questions/568864/maching-a-web-address-through-regex

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

  • 获取每个的列表ccTLD http://en.wikipedia.org/wiki/CcTLD and gTLD http://en.wikipedia.org/wiki/Generic_top-level_domain可用的。您的第一站应该是IANA http://www.iana.org/domains/root/db/。 Mozilla 的列表乍一看看起来很棒,但缺少 ac.uk 等示例,因此它实际上并不可用。
  • 像下面的示例一样加入列表。一个警告:订购很重要!如果org.uk将出现在之后uk then example.org.uk会匹配org代替example.

正则表达式示例:

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

这非常有效,而且也匹配奇怪的、非官方的顶级,比如de.com和朋友。

好处:

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

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

  • 如果 ccTLD 更改或添加,则必须手动更新手写正则表达式。繁琐的工作!
  • 正则表达式非常大,所以可读性不太好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从URL中获取域名 的相关文章

随机推荐

  • 为什么 imagemagick 中的 PNG 图像的 readimage 和 writeimage 需要花费大量时间?

    我正在使用 Imagemagick 版本 7 0 5 4 来执行图像处理操作 例如裁剪 调整大小等去图形 https github com gographics imagick图书馆 我还管理一个魔法棒对象池 Features Cipher
  • 常量折叠的具体规则是什么?

    我刚刚意识到 CPython 似乎对表示相同值的常量表达式的处理方式与常量折叠不同 例如 gt gt gt import dis gt gt gt dis dis 2 66 1 0 LOAD CONST 0 2 2 LOAD CONST 1
  • BigQuery 的速度是否足以满足实时现场请求

    我正在研究是否可以使用 BigQuery 及其 API 根据访问者查看的内容进行现场查询 因此 响应时间至关重要 我加载了一个包含 10k 行 4 列 的非常简单的结构化数据集 并运行了一个非常简单的查询 这需要 1 到 2 秒的时间 希望
  • CorFlags.exe /32BIT+ 如何工作?

    我想我的问题是关于CLR http en wikipedia org wiki Common Language Runtime装载机 我想了解背后的机制CorFlags exe http msdn microsoft com en us l
  • 无法按升序对列表进行排序

    Map
  • 实验::可选的 nullopt_t 构造函数

    Here http www open std org JTC1 SC22 WG21 docs papers 2013 n3793 html optional nullopt被描述为nullopt t and nullopt为了optiona
  • EKCalendar 中的“完整日历同步”到底是什么?

    的文档EKCalendar类指出了这一点calendarIdentifier财产 与日历完全同步将丢失此标识符 你应该 有一个处理标识符为 no 的日历的计划 通过缓存其其他属性 可以更长时间地获取 完全同步 究竟何时发生以及除了calen
  • pySpark将mapPartitions的结果转换为spark DataFrame

    我有一项工作需要在分区的 Spark 数据帧上运行 该过程如下所示 rdd sp df repartition n partitions partition key rdd mapPartitions lambda x some funct
  • 在 Symfony 2 中强制用户登录

    每当我尝试删除anonymous security yml 中的配置 系统最终返回错误 310 重定向循环 这是到目前为止的配置 firewalls secured area pattern anonymous form login che
  • 至少一个数字和一个大写字母的javascript正则表达式

    检查给定字符串是否至少包含一个数字和一个大写字母的正则表达式是什么 提前致谢 我正在这样做 function validate pass var var password document getElementById npassword
  • (void)var 实际上做了什么?

    考虑以下main int main int argc char argv return 0 编译后cc Wall Wextra 生成 未使用的参数 的警告 当我不需要在函数中使用参数时 例如在信号处理函数 http en wikipedia
  • 我需要 Sybase 数据类型来保存不定长度的字符串。

    我的要求是声明一个接受最大大小的 xml 值的数据类型 问题 Sybase 中有 text xml 或 varchar max 数据类型吗 有文本数据类型 您可以找到更多信息here http infocenter sybase com h
  • form_tag 用于创建/更新操作 Rails 3

    我的路线文件如下所示 scope locslug userslug do post rate stars gt articles rate as gt rate article end 我正在尝试生成一个表单 其中包含针对rate文章中的动
  • 可以在 VS 2008 中默认禁用 XAML 设计器吗?

    我的许多 XAML 页面都是手动设计的 当我打开它们时不需要在设计器中显示 我更喜欢只显示 XAML 页面 大多数时候设计师都会妨碍 是否可以默认禁用设计器 并在我改变主意时提供 恢复加载设计器 链接 Tools gt Options gt
  • C# 内部访问修饰符

    我想将类密封在命名空间中 我正在查看 内部 访问修饰符 但这似乎只是在程序集中密封类 我可以将类密封在命名空间中吗 或者我必须将东西移到单独的程序集中吗 但随后我会遇到 Visual Studio 拒绝循环装配引用的问题 不 没有特定于命名
  • Eclipse ADT 错误:无法运行程序 adb

    我使用的是 Ubuntu 刚刚安装了适用于 64 位 Linux 的 Android SDK 仅 SDK 然后我安装了 Eclipse 的 ADT 插件 当我重新启动 Eclipse 时 它 要求我打开 SDK 管理器并安装一些操作系统 S
  • Microtime() 对于 C 和 C++ 等效吗?

    我想知道 C 中是否有与 PHP 函数 microtime 等效的函数andC 我环顾四周 但找不到明确的答案 Thanks 没有与 PHP 的 microtime 完全相同的函数 但您可以基于以下代码创建具有类似功能的函数 Mac OS
  • 如何将其拆分为头文件和源文件?

    我有一些 C 代码 我想将其拆分为头文件和源文件 ifndef BENCHMARK H define BENCHMARK H ifdef WIN32 include
  • 我需要为 JDK 1.6 下载哪个 Jersey 版本?

    我需要为 JDK 1 6 下载什么 Jersey 有 RESTful Web 服务支持 版本 请提供下载的 URL 将会有所帮助 我还需要文件上传支持 客户端和服务器端的 jar 依赖项是什么 文件上传的REST服务器代码如下 Path f
  • 如何从URL中获取域名

    如何从 URL 字符串中获取域名 例子 input output www google com google www mail yahoo com mail yahoo www mail yahoo co in mail yahoo www