字符串url获得扩展名

时间:2013-11-25 11:58:23

标签: java regex

我正在尝试从字符串中获取扩展名(dk,com,org,eu)或任何其他域扩展名。

例如:

http://www.example.com/siteone/sitetwo/currentpage

从这个字符串我想得到.com

我可以采用非常混乱的方式来做subString,但是当网址看起来像这样时会出现问题:

dk.webpage.otherstuff.com/page

那么我将如何以一种不需要我检查每一步的方式来解决这个问题

4 个答案:

答案 0 :(得分:1)

使用像这样的getHost()方法:

public static String getDomainName(String testUrl) throws URISyntaxException {
    URI fullUri = new URI(testUrl);
    String domainName = fullUri.getHost();
    return domainName.startsWith("www.") ? domainName.substring(4) : domainName;
}

完成后,只需将subString用于域名的.com部分。

答案 1 :(得分:1)

试试这个:

String ext = url.replaceAll(".*//[^/]*(\\.\\w+)/.*", "$1");

一些测试代码:

String url = "http://www.example.com/siteone/sitetwo/currentpage";
String ext = url.replaceAll(".*//[^/]*(\\.\\w+)/.*", "$1");
System.out.println(ext);

输出:

.com

答案 2 :(得分:1)

使用Guava的InternetDomainName课程。具体来看看publicSuffix方法。

答案 3 :(得分:0)

试试这个:

private String getExtensionFromDomain(String domainName){ int p = domainName.lastIndexOf(".") +1; return domainName.substring(p); }

在example.co.ma的情况下,这将输出:.ma