java - 需要找到航类号的正则表达式

标签 java regex

航空公司代码由两个字母数字字符(英文字母或数字中的任何字母)和一个可选字母组成。航类号由 1 到 4 个数字字符(数字)和一个可选的单字母操作后缀组成。所有字符均为大写。

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

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

这不适用于以下输出:

IEL2
9AI0923

感谢任何帮助。谢谢。

最佳答案

根据你的描述,你可以使用这个正则表达式:

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

RegEx Demo

无需使用任何后视或前视。

在 Java 中使用:

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

关于java - 需要找到航类号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44172784/

相关文章:

python re.search(正则表达式)只搜索具有 {{world}} 模式的单词

java - 返回文件或纯文本

java - 正则表达式,不允许两个连续的特殊字符,也不允许在开头和结尾

php - 点击提交时需要输入一些关键词

java - 带有 Android 应用程序的 CouchDB

javascript - Java - 与使用 javax.script.ScriptEngine 的 1.7 相比,Javascript 正则表达式代码在 1.8 上失败;

c# - Regex.Replace在不同场景下的使用方法

java - 使用正则表达式替换子字符串

java - 使用 Apache HttpClient Api 时 Java 对象的反序列化不起作用

java - 打开一个有代理设置的网站-Java