Java 正则表达式 – 加拿大邮政编码验证
原文: https://howtodoinjava.com/regex/canada-postal-code-validation/
在此 Java 正则表达式教程中,我们将学习使用正则表达式来验证加拿大的邮政编码。 您也可以修改正则表达式以使其适合任何其他格式。
1. 什么是有效的加拿大邮政编码
加拿大邮政编码是一个六位字符的字符串,构成加拿大邮政地址的一部分。
有效的加拿大邮政编码为:
- 格式为
A1A 1A1
,其中 A 是字母,1 是数字。 - 用空格分隔第三个和第四个字符。
- 不要包含字母 D,F,I,O,Q 或 U。
- 第一个位置不使用字母 W 或 Z。
正则表达式:
^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] ?[0-9][A-Z][0-9]$
在正则表达式之上,此正则表达式开头的负前瞻可防止在主题字符串中的任何位置出现 D,F,I,O,Q 或 U。[A-VXY]
字符类进一步防止 W 或 Z 作为第一个字符。
2. 加拿大邮政编码验证示例
List<String> zips = new ArrayList<String>();
//Valid ZIP codes
zips.add("K1A 0B1");
zips.add("B1Z 0B9");
//Invalid ZIP codes
zips.add("K1A 0D1");
zips.add("W1A 0B1");
zips.add("Z1A 0B1");
String regex = "^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] ?[0-9][A-Z][0-9]$";
Pattern pattern = Pattern.compile(regex);
for (String zip : zips)
{
Matcher matcher = pattern.matcher(zip);
System.out.println(matcher.matches());
}
Output:
true
true
false
false
那很容易,对吗? 向我提供有关如何使用正则表达式验证加拿大邮政编码的问题。
学习愉快!