-5

我正在寻找完美的正则表达式来验证德国汽车牌照,这个数字也看起来像这样:

1-3 字母
a MINUS(我知道减号现在已经过时了,但客户希望这样)
1-2 字母
a SPACE
1-4 数字

ma 12 --> 错误
abc a 12 --> 错误
ma 12 --> 正确
abc-abc 12 --> 错误
abc-ab-12 --> 错误
abc-ab 1234 --> 正确
ab-ab 1234 -- > 正确
abc-ab 12345 错误

我正在使用([a-z]+)[-]?([a-z]*)\s*(\d+)(所以没有数数)但它走错了路。

4

2 回答 2

2

尝试以下操作:

^[a-zA-Z]{1,3}-[a-zA-Z]{1,2} \d{1,4}$

这大致分为:

  • ^ 字符串开头
  • [a-zA-Z]{1,3} 1 到 3 次(含)之间的字母
  • - 一个连字符
  • [a-zA-Z]{1,2} 1 到 2 次(含)之间的字母
  • (空格)空格字符
  • \d{1,4} 1 到 4 次(含)之间的数字 (0 - 9)
  • $ 字符串的结尾
于 2013-01-25T12:27:14.407 回答
1

你应该使用这个正则表达式

^[a-zA-Z]{1,3}-[a-zA-Z]{1,2} \d{1,4}$

[a-zA-Z]匹配单个字符

[a-zA-Z]{1,3}匹配 1 到 3 个字符

\d类似于 [0-9]

\d{1,4}匹配 1 到 4 位数字

于 2013-01-25T12:27:22.580 回答