使用正则表达式验证德国汽车牌照

时间:2013-01-25 12:24:20

标签: java regex

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

  

1-3个字母
  一个减号(我知道减号现在已经过时,但客户希望这样))   1-2个字母
  空间
  1-4号

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

我正在使用([a-z]+)[-]?([a-z]*)\s*(\d+)(因此不计算数字)但是它走错了路。

2 个答案:

答案 0 :(得分: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)
  • $字符串的结尾

答案 1 :(得分: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位