java匹配url网址正则表达式

java中对url校验的正则表达式如下:

String regex = "(ht|f)tp(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\&%\\+\\$#_=]*)?";

这里的“\\\\”四个斜杠,被解释后实际上是一个斜杠。

  1. java将“\\”解析为“\”
  2. 所以“\\\\”,java将会解析为“\\”交给正则表达式
  3.  正则表达式再经过一次转换,把\\转换成为\

所以,java里面要用正则来表示一个\, 必须写成4个\ 。如果要表示\\,那就要写8个\

public static boolean isUrl(String urls) {
        if(StringUtils.isBlank(urls)) {
            return  true;
        }
        String regex = "(ht|f)tp(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\&%\\+\\$#_=]*)?";

        Pattern pat = Pattern.compile(regex);
        Matcher mat = pat.matcher(urls.trim());
        boolean result = mat.matches();
        return result;
    }

猜你喜欢

转载自blog.csdn.net/kqZhu/article/details/105492734