车牌正则校验
项目需要判断字符串是否是车牌
1、精确判断
/**
* 精确判断是否是车牌,前半部分是判断新能源车牌,后半部分判断传统车牌
* 新能源车牌规则:
* 小车:省+市+D或F+字母或数字+4位数字
* 大车:省+市+5位数字+D或F
* 传统车牌规则:
* 省+市+4位字母或数字(除I,O)+字母或数字(除I,O)或挂学警港澳
* @param carNo
* @return
*/
public static boolean isExcatCarNo(String carNo) {
if (carNo == null) {
return false;
}
String regex = "([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))"
+ "|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1})";
return carNo.matches(regex);
}
2、简单判断
/**
* 模糊判断是否是车牌,只判断是否包含中文(因项目的carNo要么是车牌要么是字母数字,不推荐用)
*
* @param carNo
* @return
*/
public static boolean isLikeCarNo(String carNo) {
if (carNo == null) {
return false;
}
String regex = "[\u4E00-\u9FA5]";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(carNo);
return m.find();
}