从URL字符串中解析域名

dub*_*eat 2 objective-c nsurl

我如何解析Objective-C中的域名?

例如,如果我的字符串值为" http://www.google.com ",我想解析字符串"google"

Cos*_*que 7

我认为这个问题有点无效.主机由其FQDN(完全限定的域名)决定,在您的示例中,该域名是www.google.com.它与mail.google.comwww.google.infogoogle.com不同.单挑"谷歌"并非易事,从URL的角度来看也没有多大意义.

如果您想要或多或少地智能地解析URL,我认为您可以执行以下操作:

  1. 使用NSURL的-host方法可以正确地删除方案和路径/查询.
  2. 使用NSString的-componentsSeparatedByString:方法获取域名"组件"的数组.
  3. 忽略最后一个组件.
  4. 如果只剩下一个组件(或者它可能足以取得倒数第二个组件),那么你就完成了.
  5. 如果第一个组件包含"www",如www3,"ftp","mail"或类似的东西,如果您愿意,也可以忽略它.根据您的需要,其余的可能是有意义的.
  6. 针对一万个URL测试您的算法,以获得此任务的无用感;)