0

我正在尝试使用 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}$'

我遇到的问题是排除 IZ,我可以做 [A-HJ-Y],但这会导致交叉。

如何修改上面的表达式以要求 I 和 Z,然后再修改另一组表达式以排除 I 和 Z。

非常感谢

4

1 回答 1

1

爱尔兰车牌是:

  • ^([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}$
于 2013-04-25T13:06:19.613 回答