正则表达式以匹配身份证号码和序列号(2个字母)



我需要一个正则表达式来验证罗马尼亚身份证序列号和号码,如下所示:CCD_ 1。有预先定义的2个字母的集合,后面跟着6个数字。你可以在我的解决方案中找到预定义的2个字母集:

([AX,TR,AR,XC,ZC,MM,XM,XB,XT,BV,ZV,XR,DP,DR,DT,DX,RD,RR,RT,RX,RK,IF,XZ,KL,KX,CJ,KT,KZ,DX,DZ,HD,VN,GL,ZL,GG,MX,MZ,MH,HR,XH,ZH,NT,AS,AZ,PH,PX,KS,VX,SM,KV,SB,OT,SZ,SV,XV,TM,TZ,DD,GZ,ZS,MS,TC,VS,SX]{2}d{6})

问题是,表达式接受,例如"XA",我特别需要接受"AX",并且除了方形制动器之间的字母组合之外,没有其他字母组合。

您可以使用锚点来匹配字符串的开始和结束。

目前您使用的是字符类[],但您可以使用具有非捕获组(?:的替换|,并通过将字符分组到字符类中来稍微缩短选项。

^(?:A[RSXZ]|BV|CJ|D[DPRTXZ]|G[GLZ]|H[DR]|IF|K[LSTVXZ]|M[HMSXZ]|[NO]T|P[HX]|R[DKRTX]|S[BMVXZ]|T[CMRZ]|V[NSX]|X[BCHMRTVZ]|Z[CHLSV])d{6}$

Regex演示

最新更新