Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 缩短航班号正则表达式_Regex - Fatal编程技术网

Regex 缩短航班号正则表达式

Regex 缩短航班号正则表达式,regex,Regex,我正在做一个正则表达式来匹配所有有效的国际航班号和航班代码。根据,有效飞行代码的格式为XX(a)NNNN(a),其中X=[a-Za-z0-9],a=[a-Za-z],以及N=[0-9] 因为我想同时匹配航班代码和号码,所以我将XX(a)和(a)设置为可选。第一个(a)是完全可选的,但是前两个XX必须存在,才能使(a)匹配(如果存在)。我制作了下面的正则表达式,但如果可能的话,我想缩短它 ^([A-Za-z0-9]{2}([A-Za-z])?)([0-9]{4})([A-Za-z]{1})美元 我

我正在做一个正则表达式来匹配所有有效的国际航班号和航班代码。根据,有效飞行代码的格式为
XX(a)NNNN(a)
,其中
X=[a-Za-z0-9]
a=[a-Za-z]
,以及
N=[0-9]

因为我想同时匹配航班代码和号码,所以我将
XX(a)
(a)
设置为可选。第一个
(a)
是完全可选的,但是前两个
XX
必须存在,才能使
(a)
匹配(如果存在)。我制作了下面的正则表达式,但如果可能的话,我想缩短它

^([A-Za-z0-9]{2}([A-Za-z])?)([0-9]{4})([A-Za-z]{1})美元


我考虑过创建匹配组,因为一些组,例如编号前后的
(a)
组是相同的,所以要缩短它。如何缩短这个正则表达式?

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

/^([^\W_]{2}[a-z]?)?(\d{4})[a-z]?$/i
不区分大小写的标志
i
,您仍然可以获得数字。整个飞行代码在数组的第一个元素中,数字在第二个元素中


由于
[^\W]
相当于
\W
,即
[a-z0-9\]
如果不计算外来字符,那么使用
[^\W\]
将意味着只
[a-z0-9]
忽略外来字符。

在什么语言/正则表达式环境中使用它?Javascript和Ruby。Wikipedia页面不再提供这种格式(我怀疑这也是错误的,因为航班号/代码不需要将其数字部分填充到4位。但是找到官方来源并不容易。啊,这里是xx(a)n(n)(n)(n)(a)-括号中的所有字符都是可选的。请注意,航班代号(又名航班代码)中的首字母xx可以是aa、aN或Na,但不能是NN。也就是说,它必须至少包含一个字母。我的XX正则表达式是
([a-z][a-z]|[a-z][0-9]|[0-9][a-z])
,我正在生产中成功使用它(设置了不区分大小写的选项).我试过你的正则表达式,但除了航班号之外,它对任何东西都不起作用。@JoshuaSmock你必须检查一下这个案子insensitivity@JoshuaSmock我以为你的意思是AA(a)在整体上是可选的。编辑为:@JoshuaSmock,下次,我认为如果你把样品放在接受和拒绝上会更好。避免误解:)此外,您的正则表达式在Ruby和Javascript中都可以工作,因此您可以更新问题以反映这一点。