Java提取域名或URL中的根域名

【需求】

    域名中包含一级、二级域名等信息,需要提取根域名。

    例如:www.baidu.com 提取 baidu.com 

               http://write.blog.csdn.net/ 提取出 csdn.net


【实现】

    不多说,直接上代码,主要思路就是通过正则表达式解决。

import java.io.BufferedReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class TopDomainUtil {

    private Pattern pattern;

    // 定义正则表达式,域名的根需要自定义,这里不全
    private static final String RE_TOP = "[\\w-]+\\.(com.cn|net.cn|gov.cn|org\\.nz|org.cn|com|net|org|gov|cc|biz|info|cn|co)\\b()*";

    // 构造函数
    public TopDomainUtil() {
        pattern = Pattern.compile(RE_TOP , Pattern.CASE_INSENSITIVE);
    }


    public String getTopDomain(String url) {
        String result = url;
        try {
            Matcher matcher = this.pattern.matcher(url);
            matcher.find();
            result = matcher.group();
        } catch (Exception e) {
            System.out.println("[getTopDomain ERROR]====>");
            e.printStackTrace();
        }
        return result;
    }


    public static void main(String[] args) {
        TopDomainUtil obj = new TopDomainUtil();

        // 示例
        String url = "www.baidu.cc";
        String res1 = obj.getTopDomain(url);
        System.out.println(url + " ==> " + res1);

        url = "ac.asd.c.sina.com.cn";
        String res2 = obj.getTopDomain(url);
        System.out.println(url + " ==> " + res2);

        url = "whois.chinaz.com/reverse?ddlSearchMode=1";
        String res3 = obj.getTopDomain(url);
        System.out.println(url + " ==> " + res3);

        url = "http://write.blog.csdn.net/";
        String res4 = obj.getTopDomain(url);
        System.out.println(url + " ==> " + res4);

        url = "http://write.test.org.nz/";
        String res5 = obj.getTopDomain(url);
        System.out.println(url + " ==> " + res5);
    } 

}

【代码执行输出】

D:\>javac -encoding utf-8 TopDomainUtil.java

D:\>java TopDomainUtil

www.baidu.cc ==> baidu.cc
ac.asd.c.sina.com.cn ==> sina.com.cn
whois.chinaz.com/reverse?ddlSearchMode=1 ==> chinaz.com
http://write.blog.csdn.net/ ==> csdn.net
http://write.test.org.nz/ ==> test.org.nz


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值