我正在制作一个正则表达式来匹配所有有效的国际航班号以及航班代码。根据维基百科,有效的航班代码格式XX(a)NNNN(a)
为 where X = [A-Za-z0-9]
、a = [A-Za-z]
和N = [0-9]
。
由于我想同时匹配航班代码和号码,因此我将XX(a)
and设为(a)
可选。第一个(a)
是完全可选的,但前两个XX
必须存在(a)
才能匹配(如果存在)。我做了以下正则表达式,但如果可能的话,我想缩短它。
^(([A-Za-z0-9]{2}([A-Za-z])?)?)([0-9]{4})(([A-Za-z]{1})?)$
我想过做匹配组,因为有些组,比如(a)
数字前后的组是一样的,把它缩短。你会如何缩短这个正则表达式?