Java正则匹配域名白名单
Posted 请叫我头头哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java正则匹配域名白名单相关的知识,希望对你有一定的参考价值。
在上一篇文章《通用正则表达式开源工具,为开源绵尽薄力 》中,我们介绍了很多正则表达式的实例,工作中大家也经常遇到新的规则需要匹配,今天就看一下检测域名白名单的几种方式。
v方式一
/** * * 获取网址 URL 的一级域名 * http://detail.tmall.com/item.htm?spm=a230r.1.10.44.1xpDSH&id=15453106243&_u=f4ve1uq1092 ->> tmall.com * * @param url * @return */ private static Pattern p = Pattern.compile("(?<=http://|\\\\.)[^.]*?\\\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE); public static String getDomain(String url) // 获取完整的域名 // Pattern p=Pattern.compile("[^//]*?\\\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE); Matcher matcher = p.matcher(url); matcher.find(); return matcher.group();
v方式二
/** * 检测域名 * @param url 原始url * @param target 需要检测的url * @return */ public static boolean checkDomain(String url, String target) String urlDecode = url; try urlDecode = URLDecoder.decode(url); catch (Exception e) Pattern pattern = Pattern.compile("://(.*?)/", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(urlDecode); matcher.find(); String domain = matcher.group(1); if(!Strings.isNullOrEmpty(domain)) if(domain.contains(target)) return true; return false;
v方式三
/** * 检测域名 * @param url 原始url * @param target 需要检测的url * @return */ public static boolean checkDomain2(String url, String target) String urlDecode = url; try urlDecode = URLDecoder.decode(url); catch (Exception e) String pattern = "https?://[^/]*" + target + "/.*"; boolean isMatch = Pattern.matches(pattern, urlDecode); return isMatch;
v源码地址
https://github.com/toutouge/TouTou.RegexTool
作 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
以上是关于Java正则匹配域名白名单的主要内容,如果未能解决你的问题,请参考以下文章