判斷 網絡地址 是否合法的正則,須要的能夠參考下,支持IPV6格式的判斷

//這裏就是判斷 url 書寫格式是否合法(符合標準)
public boolean isUrl(String url) {
      //判斷空值根據本身須要吧,我這裏要輸入空值時也能夠保存,因此當其是合法的
        if (TextUtils.isEmpty(url)) {
            return true;
        }
        String Expression = "^((https|http|ftp|rtsp|mms)?://)"
                + "?(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?"
                + "(([0-9]{1,3}\\.){3}[0-9]{1,3}"
                + "|(\\[([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[[0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4}\\](:[1-9]([0-9]){0,4})?)"
                + "|(\\[([0-9A-Fa-f]{1,4}:){1,7}:\\](:[1-9]([0-9]){0,4})?)"
                + "|"
                + "([0-9a-zA-Z_!~*'()-]+\\.)*"
                + "([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z]\\."
                + "[a-zA-Z]{2,6})"
                + "(:[0-9]{1,4})?"
                + "((/?)|"
                + "(/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+/?)$";
        Pattern pattern = Pattern.compile(Expression);
        Matcher mapMatcher = pattern.matcher(url);
        if (mapMatcher.find()) {
            return true;
        }
        return false;
    }
相關文章
相關標籤/搜索