下面的方法用于验证字符串是否为正确的IPv4地址,如果是有效的则返回true。如果有更好的正则表达式和优雅的方法,请提出建议:
public static boolean validIP(String ip) {
if (ip == null || ip.isEmpty()) return false;
ip = ip.trim();
if ((ip.length() < 6) & (ip.length() > 15)) return false;
try {
Pattern pattern = Pattern.compile("^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");
Matcher matcher = pattern.matcher(ip);
return matcher.matches();
} catch (PatternSyntaxException ex) {
return false;
}
}
[0-9]
替换为\d
并且把模式编译移出方法,这样就不必每次都编译了。 - Javier Diaz