在此 java 正则表达式教程中,我们将学习使用正则表达式来验证特定于英国的邮政编码。 您也可以修改正则表达式以使其适合任何其他格式。
英国的邮递区号(或邮递区号)由 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}$
要检查英国邮政编码上的验证规则,请遵循此维基百科页面。
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
随意提出与上述英国邮政编码验证示例有关的问题。
学习愉快!