Regex:身份证号码和车牌号码正则表达式

本文详细介绍了身份证号码和车牌号码的正则表达式验证,包括车牌号的各种类型和身份证号码的各组成部分,如地址码、年份码、月份码、日期码、顺序码和校验码。针对XML文件中正则表达式匹配汉字的问题,提出了修改方案。同时指出了正则存在的不足,如地址码不够准确和月份日期判断不精确,并提出了通过程序逻辑增强验证的建议。
摘要由CSDN通过智能技术生成

实名认证时,常会用到身份证号码和车牌号码的正则表达式匹配验证。简单高效。
经过一次一次的测试,去除多种匹配的表达式,得出相对正确的正则表达式。

1.车牌号正则匹配

车牌号组成规则

1.民用常规车牌号
常规车牌号由三部分组成,仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成。如:浙A 12345
如下图:
车牌号组成规则
随着车辆的增多,五位序号码已经排满,英文字母都分配或者预留给下辖县市了,市区只好再继续数字字头,不过第二位是英文字母,就是浙A-0A001排列到浙A-0Z999。

2.新军车牌

以两位为大写英文字母开头,后面以5位阿拉伯数字组成。如:BA12345。

3.最后一位为汉字的车牌

有最后一位为汉字的车牌,比如外国大使馆的车牌后面的汉字是个领字,咱们中国警察后面是个警字,挂车后面有个挂字

允许以汉字开头,后面可录入六个字符,前五位字符,由大写英文字母和阿拉伯数字组成,而最后一个字符为汉字。
汉字包括“挂”、“学”、“警”、“港”、“澳”,“领”。如:浙A1234警

4.新能源汽车车牌
新能源汽车车牌新增加两个字段D(表示纯电动)和F(表示非纯电动),小型轿车字段在前面,如:浙AD12345,浙AF12345,大型车字段在后面,如浙A12345D,浙A12345F。
新能源车牌比普通车牌号多一位。

综上:常用车牌号的正则表达式为:

regex=([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z][A-Z][DF]?[A-Z0-9]{
   4}[A-Z0-9挂学警港澳领][DF]?)

由于开头两位英文字母后面四位字符的这种情况匹配错误率较高,所以舍弃了这种车牌的匹配,正则表达式为:

regex=([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][DF]?[A-Z0-9]{
   4}[A-Z0-9挂学警港澳领][DF]?)

问题:
写在XML文件中的正则,C++程序读取表达式集合[]中的汉字匹配出现问题,不能准确的匹配汉字。

解决:
将集合[]改为捕获型或者非捕获型括号后,汉字使用或(|)隔离,可以正确匹配汉字。
如下:

regex=((|||||||||||||||||||||||||||||||使|)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值