java中對url校驗的正則表達式如下:
String regex = "(ht|f)tp(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\&%\\+\\$#_=]*)?";
這裏的“\\\\”四個斜槓,被解釋後實際上是一個斜槓。
- java將“\\”解析爲“\”
- 所以“\\\\”,java將會解析爲“\\”交給正則表達式
- 正則表達式再經過一次轉換,把\\轉換成爲\
所以,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;
}