我需要一个正则表达式来验证斯里兰卡车辆编号

时间:2015-02-19 09:29:26

标签: c# regex validation

我的车号是这样的。

1-0001,
10-0010,
111-000

A-3049,
KJ-6825,
AAC-3422

以下表达式是我找到的。

^([a-zA-Z]{1,3}|([0-9]{1,3}))-[0-9]{4}

但是我希望前三个字符不应该全为零,或者最后四个字符不是全部为零,我如何制作有效的表达式?

3 个答案:

答案 0 :(得分:4)

^([a-zA-Z]{1,3}|((?!0*-)[0-9]{1,3}))-[0-9]{4}(?<!0{4})

试试这个。看看演示。

https://regex101.com/r/mS3tQ7/12

lookaheadlookbehind会确保开始时没有0\s或结尾时只有0's

也可以使用

^(?>[a-zA-Z]{1,3}|(?!0*-)[0-9]{1,3})-[0-9]{4}(?<!0{4})

确保你不进行部分匹配。

https://regex101.com/r/mS3tQ7/13

答案 1 :(得分:1)

这个怎么样:

^((?!0000)([a-zA-Z]{1,3}|([0-9]{1,3}))-[0-9])|(([a-zA-Z]{1,3}|([0-9]{1,3}))-[0-9])(?!000)

Regular expression visualization

Debuggex Demo

答案 2 :(得分:0)

那是怎么回事:

^([0-9] {1,3} | [A-Z] {1,3}) - [0-9] {1,4}