Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
Java 需要找到航班号的正则表达式_Java_Regex - Fatal编程技术网

Java 需要找到航班号的正则表达式

Java 需要找到航班号的正则表达式,java,regex,Java,Regex,航空公司标志由两个字母数字字符(英文字母表中的任何字母或数字)和一个可选字母组成。航班号由1到4个数字字符(数字)和可选的一个字母操作后缀组成。所有字符均为大写 这是到目前为止我的正则表达式: (?<!([A-Z0-9]))(([A-Z]{2}|[A-Z]\\d|\\d[A-Z])\\s?\\d{3,4})(?:\\D) 感谢您的帮助。谢谢。根据您的描述,您可以使用以下正则表达式: ^[A-Z\d]{2}[A-Z]?\d{1,4}[A-Z]?$ 没有必要使用任何“向后看”或“向前看”

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

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

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

感谢您的帮助。谢谢。

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

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

没有必要使用任何“向后看”或“向前看”

在Java使用中:

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

将描述直接转换为正则表达式,您将得到
[a-Z0-9]{2}[a-Z]?([0-9]{1,4}[a-Z]?)
。你的要复杂得多。您描述中没有的航班号有更多限制吗?为什么要费心于
^
$
?匹配时不需要这些。尽管
matches()
方法不需要它,但最好是显式的。一些读者可能会在其他语言中使用此正则表达式,如PHP、Javascript,其中需要
^
$
。此正则表达式符合问题中定义的要求,并且
A1B2
满足该要求。OP可以更好地告诉我们是否有额外或不同的要求。我忽略了这一切。我从来没有见过这样的航班号。
final String re = "^[A-Z\\d]{2}[A-Z]?\\d{1,4}[A-Z]?$";