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/
關於作者:專注於基礎平臺的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角推薦一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章