1

我正在制作一个正则表达式来匹配所有有效的国际航班号以及航班代码。根据维基百科,有效的航班代码格式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)数字前后的组是一样的,把它缩短。你会如何缩短这个正则表达式?

4

1 回答 1

2

您可以在 Javascript 和 Ruby 中使用它:

/^([^\W_]{2}[a-z]?)?(\d{4})[a-z]?$/i

i不区分大小写的标志,您仍然可以获得数字。整个航班代码在数组的第一个元素中,数字在第二个元素中。

因为如果不计算外来字符[^\W]就相当于\wie ,那么 using将意味着只忽略外来字符。[a-z0-9_][^\W_][a-z0-9]

于 2013-10-03T19:14:37.643 回答