zoukankan      html  css  js  c++  java
  • java用正则表达式获取domain

      在工作中经常用到获取url的来源和域名的黑白名单功能.前段时间写了一个获取url中域名的方法.但是在测试过程中发现有些小问题.

        

        /**
         * 根据URL获取domain
         * @param url
         * @return
         */
        public static String getDomainForUrl(String url){
            
            String domainUrl = null;
            if (url == null) {
                return null;
            } else {
                Pattern p = Pattern.compile("(?<=http://|\.)[^.]*?\.(com|cn|net|org|biz|info|cc|tv)",Pattern.CASE_INSENSITIVE);
                Matcher matcher = p.matcher(url);
                matcher.find();
                domainUrl = matcher.group();
                return domainUrl;
            }
        }

      下面是测试方法

        

        public static void main(String[] args) {
    
            System.out.println(getDomainForUrl("www.likunran.com"));
            System.out.println(getDomainForUrl("www.likunran.com"));
            System.out.println(getDomainForUrl("atongbei.likunran.com.taobao.com"));
    
        }

    执行结果

    likunran.com
    likunran.com
    likunran.com

      发现当域名正常时候取出来域名是正常的.如果域名里包含自己的域名就跪了.经过分析是正则表达式的匹配顺序有问题.故修改代码如下

        

        /**
         * 根据URL获取domain
         * @param url
         * @return
         */
        public static String getDomainForUrl(String url){
            
            String domainUrl = null;
            if (url == null) {
                return null;
            } else {
                Pattern p = Pattern.compile("(?<=http://|\.)[^.]*?\.(com|cn|net|org|biz|info|cc|tv)",Pattern.CASE_INSENSITIVE);
                Matcher matcher = p.matcher(url);
                while(matcher.find()){
                    domainUrl = matcher.group();
                }
                return domainUrl;
            }
        }

    修改后测试结果

    likunran.com
    likunran.com
    taobao.com

  • 相关阅读:
    int.Parse()及其异常判断
    三个框框的EditBox
    等价类的划分方法与EditorBox问题等价类划分
    初学软件测试
    软件测试方法的分类细谈
    浅谈软件测试之回归测试
    白盒测试——基本路径法
    初探灰盒测试——介于白盒测试与黑盒测试的测试
    对闰年测试的非法输入处理的思考
    等价类测试——进一步完善的Web输入合法验证
  • 原文地址:https://www.cnblogs.com/Traner/p/3208313.html
Copyright © 2011-2022 走看看