项目中用到了提取域名,参考了http://blog.csdn.net/kuluzs/article/details/51986759后并改进后,写出此工具类(test方法仅为方便测试,使用时可删除,可另建测试类)。

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* Created by terry on 2017/8/1.

*/

public class UrlUtils {

private static final String RE_TOP_DOMAIN = "(com\\.cn|net\\.cn|gov\\.cn|org\\.nz|org\\.cn|com|net|org|gov|cc|biz|info|cn|co|me)";

// 一级域名提取

private static final String RE_TOP_1 = "(\\w*\\.?){1}\\." + RE_TOP_DOMAIN;

// 二级域名提取

private static final String RE_TOP_2 = "(\\w*\\.?){2}\\." + RE_TOP_DOMAIN;

// 三级域名提取

private static final String RE_TOP_3 = "(\\w*\\.?){3}\\." + RE_TOP_DOMAIN;

private static final Pattern PATTEN_IP = Pattern.compile("((http://)|(https://))?((\\d+\\.){3}(\\d+))");

private static final Pattern PATTEN_TOP1 = Pattern.compile(RE_TOP_1);

private static final Pattern PATTEN_TOP2 = Pattern.compile(RE_TOP_2);

private static final Pattern PATTEN_TOP3 = Pattern.compile(RE_TOP_3);

public static String getDomain(String url, int level) {

Matcher matcher = PATTEN_IP.matcher(url);

if (matcher.find()){

return matcher.group(4);

}

switch (level) {

case 1:

matcher = PATTEN_TOP1.matcher(url);

break;

case 2:

matcher = PATTEN_TOP2.matcher(url);

break;

case 3:

matcher = PATTEN_TOP3.matcher(url);

break;

default:

return "";

}

if (matcher.find()) {

return matcher.group(0);

}

return "";

}

public static void test()

{

String[] urls = {

"http://meiwen.me/src/index.html",

"http://1000chi.com/game/index.html",

"http://see.xidian.edu.cn/cpp/html/1429.html",

"https://docs.python.org/2/howto/regex.html",

"https://www.google.com.hk/search?client=aff-cs-360chromium&hs=TSj&q=url%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8Dre&oq=url%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8Dre&gs_l=serp.3...74418.86867.0.87673.28.25.2.0.0.0.541.2454.2-6j0j1j1.8.0....0...1c.1j4.53.serp..26.2.547.IuHTj4uoyHg",

"file:///D:/code/echarts-2.0.3/doc/example/tooltip.html",

"http://api.mongodb.org/python/current/faq.html#is-pymongo-thread-safe",

"https://pypi.python.org/pypi/publicsuffix/",

"http://127.0.0.1:8000",

};

for (String url : urls) {

for (int i = 1; i < 4; i++) {

System.out.println(getDomain(url, i));

}

}

}

}

简书 java二级,java提取二级域名相关推荐

  1. java forkjoin 简书_ForkJoinPool in Java

    -- ForkJoinPool -- ForkJoinPool与ThreadPool的不同是:ForkJoinPool中的任务是有同步关系的,某个任务必须在其它的某个/某些任务完成后才能进行,甚至需要 ...

  2. 从博客园迁移到简书平台

    使用博客园写博客也有10年有余了,对博客园是有一种莫名的亲切感和深刻的感情的,现在则是从博客园迁移到简书平台.这10多年来一直坚持写着博客,也是对自己的一个很好的技术历程总结.这十多年来,每次学习了一 ...

  3. 2018java二级考试大纲_2018年全国计算机二级java考试简答题练习二

    2018年全国计算机二级java考试简答题练习二 1.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接 ...

  4. 全国计算机等级考试——二级JAVA完整大题题库【五十三道】

    全国计算机等级考试二级 JAVA 题目内容 编写于2023.04.10 分为40道选择题和3道大题(大题是程序填空类型) 其中选择题只能进去做一次,一旦退出来则不可再进(注意!).大题可以重复进入,重 ...

  5. 计算机二级Java备考需要多久_计算机二级要准备多久 一个月来得及吗

    计算机二级是全国计算机等级考试中一个比较基础的等级,一般没有基础的人准备两个月时间就可以了.对于基本可以操作的人来说,一个月的时间也是来得及的. 计算机二级备考多久合适 计算机二级考试考核计算机基础知 ...

  6. java二级考试备考_计算机二级java如何备考 方法在这里

    很多同学想知道计算机二级java如何备考,下面是小编整理的相关内,希望对大家有所帮助! 计算机二级java如何备考 选好复习用书 在复习应考时,大家要根据自己的具体情况,制定一套完整的复习计划.不要拘 ...

  7. 2016计算机二级java_2016计算机二级JAVA练习题及答案

    2016计算机二级JAVA练习题及答案 21.下列选项中,不能输出100个整数的.是( ). A.for(int i=0;i<100;i++) System.out.println(i); B. ...

  8. java 2维数据便利_计算机等级考试二级java数组辅导

    数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 注意: ...

  9. 无忧考吧2017二级java_无忧考吧二级JAVA超级模拟软件下载_无忧考吧二级JAVA超级模拟软件官方下载-太平洋下载中心...

    无忧考吧二级JAVA超级模拟软件是一款可以帮助用户朋友来学习计算机二级java语言考试的软件,使用这款二级java模拟考试软件可以帮助用户快速的掌握学习内容和操作逻辑,让你顺利的通过二级java考试. ...

  10. 2011年计算机等级考试二级java笔试练习题(10)_2010年3月计算机等级考试二级Java笔试题及答案...

    2010年3月计算机等级考试二级Java笔试真题 一.选择题(每小题2分,共70分) 下列各题A).B).C).D)四个选项中,只有一个选项是正确的.请将正确选项填涂在答题卡相应位置上,答在试卷上不得 ...

最新文章

  1. 互联网大厂技术面试内幕@霞落满天
  2. 20170401 11G Deprecated Attributes for LOG_ARCHIVE_DEST_n
  3. 数据库中日期大小的判断
  4. uva 544(kruskal 变形)
  5. 【转】程序debug正常release错误
  6. v-charts显示标题
  7. Hawtio和Apache JClouds
  8. java crs校验_AIX系统学习之-CRS安装后校验
  9. 全球加密货币总市值突破7500亿美元 比特币市值突破5200亿美元
  10. FreeMarker 日期转换
  11. ASP.NET Web API 路由 (上)
  12. 实习学习:项目用的DDD,什么是DDD开发?
  13. thinkcmf5调用指定分类的二级_Mybatis一二级缓存的使用和实现原理
  14. 阿里云实人认证是什么?
  15. FreeRTOS学习(一)
  16. [531]微信之wxpy库(基于itchat库)
  17. CIS基准测试工具kube-bench使用
  18. Java基础---继承、抽象、接口
  19. 一个成功软件测试项目的经验(转载)
  20. Java mysql获取行数_java – MySQL查询获取球体中的行(X,Y,Z坐标)?

热门文章

  1. 使用NPOI 汇出EXCEL,设置样式,字体等
  2. 不是宗教励志作品的好书——leo鉴书(23)
  3. 20210813 数据摆渡、DNS、分布式、分布式数据库、防ddos攻击、链路负载均衡
  4. python jit_python中Numba jit警告的解释
  5. HTML特殊符号大全
  6. c语言测试两个浮点数是否相等,C语言中比较两个浮点数是否相等的方法,fabs和abs...
  7. 指尖日记-如何分享赚钱
  8. 计算机辅助医学教育发言稿,计算机辅助教学在医学高校的运用最新教育资料.doc...
  9. php的js定义全局变量,使用vue.js怎么定义全局变量
  10. 算法学习——树状数组和线段树