需要查找航班号

时间:2017-05-25 05:18:04

标签: java regex

航空公司指示符包含两个字母数字字符(英文字母或数字中的任何字母),后跟可选字母。航班号由1到4个数字字符(数字)和一个可选的单字母操作后缀组成。所有字符都是大写的。

到目前为止这是我的正则表达式:

(?<!([A-Z0-9]))(([A-Z]{2}|[A-Z]\\d|\\d[A-Z])\\s?\\d{3,4})(?:\\D)

这不适用于以下输出:

IEL2
9AI0923

感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:5)

根据您的描述,您可以使用此正则表达式:

^[A-Z\d]{2}[A-Z]?\d{1,4}[A-Z]?$

RegEx Demo

没有必要使用任何lookbehind或lookahead。

在Java中使用:

final String re = "^[A-Z\\d]{2}[A-Z]?\\d{1,4}[A-Z]?$";