当前位置:  开发笔记 > 编程语言 > 正文

正则表达式从任何域提取域名

如何解决《正则表达式从任何域提取域名》经验,为你挑选了1个好方法。

我正在尝试从C#中的字符串中提取域名.您不一定要使用RegEx,但我们应该能够yourdomain.com从以下所有内容中提取:

yourdomain.com
www.yourdomain.com
http://www.yourdomain.com
http://www.yourdomain.com/
store.yourdomain.com
http://store.yourdomain.com
whatever.youdomain.com
*.yourdomain.com

此外,任何TLD是可以接受的,所以更换所有上述与.net,.org,'co'uk等.



1> bobince..:

    如果没有方案存在(字符串中没有冒号),请在"http://"前加上一个有效的URL.

    将字符串传递给Uri构造函数.

    访问Uri的主机属性.

现在你有了主机名.你究竟认为给定主机名的"域名"究竟是一个值得商榷的问题.我猜你不是简单地说第一个点之后的所有东西.

不可能将'whatever.youdomain.com'等主机名与像'warwick.ac.uk'这样的SLD中的域名区分开来.事实上,考虑到一些注册商努力开拓自己的利基市场,甚至还有一些关于什么是公共SLD的灰色区域.

一种常见的方法是维护一个由不相关实体使用的SLD和其他后缀的大列表.这就是Web浏览器为阻止不必要的公共cookie共享所做的事情.一旦找到了公共后缀,就可以在主机名中添加一个最接近的前缀,用点分割,以获得负责给定主机名的最高级实体,如果这是您想要的.后缀列表是难以维护的,但你可以捎带别人的努力.

或者,如果您的应用程序具有执行此操作的时间和网络连接,则可以开始嗅探有关主机名的信息.例如.它可以对主机名执行whois查询,并继续查看每个父项,直到获得结果,这将是负责给定主机名的最低级实体的域名.

或者,如果所有这些工作太多,你可以尝试切断任何领先的'www'.当下!

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有