最新版车牌号正则效验

2023-11-23 12:20

本文主要是介绍最新版车牌号正则效验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

支持最新版新能源、各类特种车等车牌号规则效验

  private static final Pattern pattern = Pattern.compile("^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼ABCDEFGHJK]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[ABCDEFGHJK]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z0-9]{1}[A-Z0-9]{1}[A-Z0-9应]{4,5}[A-Z0-9挂学警港澳领使急]{1})$");

1.通过正则表达式,能过来大量车牌号长度、字符规则不对的数据;例如:民航车牌,在正则表达式中没有进行匹配 ;
2:实际使用中,黑色车牌通常为使领馆、港澳地区车辆,通过正则表达式验证通过后,还需要进行颜色效验;

public class TestUtil {private static final String BLACK_RULE = "使领港澳";private static final Pattern pattern = Pattern.compile("^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼ABCDEFGHJK]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[ABCDEFGHJK]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z0-9]{1}[A-Z0-9]{1}[A-Z0-9应]{4,5}[A-Z0-9挂学警港澳领使急]{1})$");private static final Pattern whitePattern = Pattern.compile("^[0-9A-Za-z]{6,8}$");public static boolean isCarNo(String carNo, String color) {//通过号码规则校验,该规则能过滤大量民航、新能源车牌、车牌长度不对的车牌号boolean carNoRule = pattern.matcher(carNo).matches();if (!carNoRule) {return false;}//蓝牌、黄牌长度一定为7位if (StringUtils.equals(color, ColorEnum.blue.name())|| StringUtils.equals(color, ColorEnum.yellow.name())) {return carNo.length() == 7;}//新能源车牌,长度为8位过滤规则if (StringUtils.equals(color, ColorEnum.small_new_energy.name())|| StringUtils.equals(color, ColorEnum.large_new_energy.name())) {return carNo.length() == 8;}//黑牌一定含有使领港澳if (StringUtils.equals(color, ColorEnum.black.name())) {return StringUtils.containsAny(carNo, BLACK_RULE);} else if (StringUtils.containsAny(carNo, BLACK_RULE)) {return false;}//白牌 警或应急结尾  WJ开头  纯字母+数字if (StringUtils.equals(color, ColorEnum.white.name())) {return carNo.endsWith("警") || carNo.startsWith("WJ") || carNo.endsWith("应急") || whitePattern.matcher(carNo).matches();}//其他颜色待补充return true;}public static void main(String[] args) {List<String> licenses = new ArrayList<>();licenses.add("湘JJ16871");licenses.add("粤HD666学");licenses.add("粤ZD677港");licenses.add("粤ZD000澳");licenses.add("沪19674领");licenses.add("258043使");licenses.add("赣A5330警");licenses.add("WJ鄂D4020");    licenses.add("京A33388D");licenses.add("民航1211");licenses.add("冀RR527挂");licenses.add("京X535应急");licenses.add("京X5359应急");licenses.add("皖0619940");licenses.add("吉0759703");licenses.add("民航B0150");licenses.add("LW92110");licenses.add("VAD1137");licenses.add("BAD00ss04");licenses.add("京HAD0057");licenses.add("京BDF9992");licenses.add("京00000V");for (String str : licenses) {System.out.println(str + ": " + isCarNo(str, "green"));}}

这篇关于最新版车牌号正则效验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417906

相关文章

ubuntu通过apt的方式更新cmake到最新版(ppa)

添加签名密钥 wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - 将存储库添加到您的源列表并进行更新 稳定版 sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic ma

最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)

文章目录 一、自动配置概念二、半自动配置(误~🙏🙏)三、源码分析1、验证DispatcherServlet的自动配置2、源码分析入口@SpringBootApplication3、@SpringBootConfiguration的@Configuration4、@EnableAutoConfiguration的@AutoConfigurationPackage和@Import5、Auto

P11019 「LAOI-6」[太阳]] 请使用最新版手机 QQ 体验新功能

English statement. You must submit your code at the Chinese version of the statement. 题目描述 你的 QQ 收到了一条新消息!但是你很生气,因为你看不到别人在手机 QQ 上发送的超级表情。 消息形如一个字符串 S,包含且仅包含一个超级表情。具体地,我们将 S 的拼音采用驼峰命名法,可以化为如下形

python进阶篇-day07-高级语法与正则

day07-python其他高级语法 一. with(上下文管理) 介绍 概述 一个类只要实现了__ enter __ () 和 __ exit __ ()方法, 这个类就是一个上下文管理器类, 该类的对象 = 上下文管理器对象 目的 节约资源, 提高效率, 避免手动释放资源, 且出bug的时候, 也会自动尝试释放资源 特点 上下文管理器对象, 可以结合with语句使用

JavaScript中使用正则判断一个值是否是数字,包含正负,小数点

使用正则表达式来判断: if(/^[+-]?\d*\.?\d*$/.test(str)){//为数字} 实际情况中可以将+去掉,

优化算法与正则化

目录 一:优化问题 1.梯度消失和爆炸 2.局部最优  3.指数加权平均 4.动量梯度下降法  5.RMSProp算法 6.Adam算法 二:学习率衰减 三:标准化  都看到这里了,点个赞呗!!!!! 一:优化问题 1.梯度消失和爆炸 在梯度函数上出现指数级递增或者递减的情况下分别称为梯度爆炸或者梯度消失 假设g(z)=z,对于目标输出:y=w^n*w^n-

6. 深度学习中的正则化技术:防止过拟合

引言 过拟合是深度学习模型在训练过程中常遇到的挑战。过拟合会导致模型在训练数据上表现良好,但在新数据上表现不佳。为了防止过拟合,研究者们提出了多种正则化技术,如L1/L2正则化、Dropout、数据增强等。这些技术通过约束模型的复杂度或增加数据的多样性,有效提高了模型的泛化能力。本篇博文将深入探讨这些正则化技术的原理、应用及其在实际深度学习任务中的效果。 1. 过拟合的原因与影响 过拟合通常

013.Python爬虫系列_re正则解析

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

【机器学习 sklearn】模型正则化L1-Lasso,L2-Ridge

#coding:utf-8from __future__ import divisionimport sysreload(sys)sys.setdefaultencoding('utf-8')import timestart_time = time.time()import pandas as pd# 输入训练样本的特征以及目标值,分别存储在变量X_train与y_train之中。

JS 【精华速查版】2024最新版

JS 的特点 单线程 JS 和 DOM 渲染共用同一个线程,因为 JS 可修改 DOM 结构同一时间只能做一件事,DOM 渲染会阻塞 JS 的执行浏览器和 nodeis 已支持 JS 启动进程,如 Web Worker (只能执行 js 计算,无法渲染 DOM) 弱类型跨平台解释型语言以事件驱动为核心遵循 ES 标准 严格模式 的特点 全局变量必须先声明禁止使用 with创建 e