Java通过正则表达式获取域名

由于 url.getHost()获取域名会有漏洞,会获取不完整,因此通过正则表达式获取域名,上代码:

String url = http://www.linuxidc.com/entry/4545/0/;
Pattern p = Pattern.compile("(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)",Pattern.CASE_INSENSITIVE);
Matcher matcher = p.matcher(url);
matcher.find();
System.out.println(matcher.group());//结果:linuxidc.com

如果要得到 linuxidc.com/entry/4545/0/,正则表达式最后加上 .* 即可:

String url = "http://127.0.0.1\\.testserver.cn/1.htm";
Pattern p = Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv).*", Pattern.CASE_INSENSITIVE);
Matcher matcher = p.matcher(url);
matcher.find();
 System.out.println("------------------->"+matcher.group());

你可能感兴趣的:(java)