首页 > 代码库 > 如何提取网址中域名和域名主体(java)

如何提取网址中域名和域名主体(java)

package com.sogou.web.selector.updana.wapPc.test;import java.util.regex.Matcher;import java.util.regex.Pattern;import com.sogou.web.selector.updana.wapPc.DomainName;public class TestURL {    public static void main(String[] args) {        String regex = "[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\\.?";        DomainName domainName=new DomainName();        Pattern p = Pattern.compile(regex);        String url = null;        Matcher matcher = null;        String sourceUrl = null;        url = "http://club.m.autohome.com.cn/bbs/thread-c-24-343627-1.html";        matcher = p.matcher(url);        String[] urlArray=null;        if (matcher.find()) {            url = matcher.group();            urlArray=url.split("\\.");            if(urlArray!=null&&urlArray.length!=0){                for(int i=urlArray.length-1;i>=0;i--){                    if(!domainName.isContains(urlArray[i])){                        url=urlArray[i];                        break;                    }                }            }        }        System.out.println(url);    }}
package com.sogou.web.selector.updana.wapPc;import java.util.HashSet;import java.util.Set;public class DomainName {    private final Set<String> domain;    public DomainName(){        domain=new HashSet<String>();        //世界后缀        domain.add("com");        domain.add("edu");        domain.add("gov");        domain.add("int");        domain.add("mil");        domain.add("net");        domain.add("org");        domain.add("biz");        domain.add("info");        domain.add("pro");        domain.add("name");        domain.add("museum");        domain.add("coop");        domain.add("aero");        domain.add("idv");        domain.add("xxx");        //中国        domain.add("cn");    }    public boolean isContains(String value){        if(domain.contains(value)){            return true;        }else{            return false;        }    }}