我正在尝试使用REGEX匹配数据库中的车号牌,以便为它们设置类型,因此以后在任何查询中都不必使用REGEX。
我有两个匹配无日期/爱尔兰板的表达式。我需要将爱尔兰版和无日期版分开。
爱尔兰板块必须包含字母I或Z,无日期板块不能包含I或Z。
这是两个同时满足dateless和irish的表达式。
REGEXP '^[A-Z]{1,3}[0-9]{1,4}$'
REGEXP '^[0-9]{1,4}[A-Z]{1,3}$'
我遇到的问题是排除I-Z,我可以执行[A-HJ-Y],但这会导致交叉。
如何修改上面的表达式以要求I和Z,然后再修改另一组表达式以排除I和Z。
非常感谢
最佳答案
爱尔兰的盘子是:^([IZ][A-Z]{0,2}|[A-Z]([IZ][A-Z]?|[A-Z][IZ]))[0-9]{1,4}$
^[0-9]{1,4}([IZ][A-Z]{0,2}|[A-Z]([IZ][A-Z]?|[A-Z][IZ]))$
如果您准备接受最多5个字母,可以将其简化为:^[A-Z]{0,2}[IZ][A-Z]{0,2}[0-9]{1,4}$
^[0-9]{1,4}[A-Z]{0,2}[IZ][A-Z]{0,2}$
无日期的盘子是:^[A-HJ-Y]{1,3}[0-9]{1,4}$
^[0-9]{1,4}[A-HJ-Y]{1,3}$