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中都可以工作,因此您可以更新问题以反映这一点。