多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 正则表达式 – 英国邮政编码验证 > 原文: [https://howtodoinjava.com/regex/uk-postcode-validation/](https://howtodoinjava.com/regex/uk-postcode-validation/) 在此 [java 正则表达式教程](https://howtodoinjava.com/java-regular-expression-tutorials/)中,我们将学习使用正则表达式来**验证特定于英国**的邮政编码。 您也可以修改正则表达式以使其适合任何其他格式。 ## 1\. 什么是有效的英国邮政编码 英国的邮递区号(*或邮递区号*)由 5 到 7 个字母数字字符组成,中间用空格隔开。 这两个部分是外向代码和内向代码。 外部代码包括邮政编码区域和邮政编码区域。 内向代码包括邮政编码扇区和邮政编码单元。 邮政编码的示例包括“`SW1W 0NY`”,“`PO16 7GZ`”,“`GU16 7HF`”或“`L1 8JQ`”。 覆盖哪些字符可以出现在特定位置的规则并不复杂,并且充满了异常情况。 因此,此处给出的正则表达式仅遵循基本规则。 > **正则表达式**:`^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$` 要检查英国邮政编码上的验证规则,请遵循此[**维基百科**](https://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom#Validation "uk postal code validations")页面。 ## 2\. 英国邮政编码验证示例 ```java List<String> zips = new ArrayList<String>(); //Valid ZIP codes zips.add("SW1W 0NY"); zips.add("PO16 7GZ"); zips.add("GU16 7HF"); zips.add("L1 8JQ"); //Invalid ZIP codes zips.add("Z1A 0B1"); zips.add("A1A 0B11"); String regex = "^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$"; Pattern pattern = Pattern.compile(regex); for (String zip : zips) { Matcher matcher = pattern.matcher(zip); System.out.println(matcher.matches()); } Output: true true true true false false ``` 随意提出与上述**英国邮政编码验证示例**有关的问题。 学习愉快!