java - 从给定的 url 中提取主域名

标签 java regex url domain-name

我使用以下方法从 url 中提取域:(它们是测试用例)

String regex = "^(ww[a-zA-Z0-9-]{0,}\\.)";
ArrayList<String> cases = new ArrayList<String>();
cases.add("www.google.com");
cases.add("ww.socialrating.it");
cases.add("www-01.hopperspot.com");
cases.add("wwwsupernatural-brasil.blogspot.com");
cases.add("xtop10.net");
cases.add("zoyanailpolish.blogspot.com");

for (String t : cases) {  
    String res = t.replaceAll(regex, "");  
}

我可以得到如下结果:

google.com
hopperspot.com
socialrating.it
blogspot.com
xtop10.net
zoyanailpolish.blogspot.com

前四种情况都不错。最后一个不好。我想要的是:blogspot.com 为最后一个,但它给出了 zoyanailpolish.blogspot.com。我做错了什么?

最佳答案

使用Guava库,我们可以轻松获取域名:

InternetDomainName.from(tld).topPrivateDomain()

更多详细信息请引用 API 链接

https://google.github.io/guava/releases/14.0/api/docs/

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/net/InternetDomainName.html

关于java - 从给定的 url 中提取主域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7217271/

相关文章:

java - JButton 不适合我吗?

java - NoSuchMethod : Parameter comparisson differs. 相同类型,不同对象

java - 如何在java中使用正则表达式解析给定的字符串

java - 用多个特殊字符拆分 : √(A&B)

ios - 如何在 iOS 9 中启用 App Transport Security 的情况下加载 HTTP URL?

java - Android Studio : Plugin with id 'com.android.application' not found

java - 为什么写入文件的整数会被读取为不同的值?

java - 使用大数据进行测试时,正则表达式需要花费大量时间

asp.net - 如何使用代码隐藏技术在asp.net中获取当前页面的Url?

security - FBML 应用程序在 HTTPS 下失败