原文: https://howtodoinjava.com/regex/us-postal-zip-code-validation/

在此 Java 正则表达式教程中,我们将学习使用正则表达式来验证美国邮政编码。 您也可以修改正则表达式以使其适合任何其他格式。

1. 有效的美国邮政编码模式

美国邮政编码(美国邮政编码)允许五位数和九位数(称为ZIP + 4)格式。

例如。 有效的邮政编码应匹配1234512345-6789,但不能匹配12341234561234567891234-56789

正则表达式:^[0-9]{5}(?:-[0-9]{4})?$

  1. ^ # Assert position at the beginning of the string.
  2. [0-9]{5} # Match a digit, exactly five times.
  3. (?: # Group but don't capture:
  4. - # Match a literal "-".
  5. [0-9]{4} # Match a digit, exactly four times.
  6. ) # End the non-capturing group.
  7. ? # Make the group optional.
  8. $ # Assert position at the end of the string.

2. 美国邮政编码验证示例

  1. List<String> zips = new ArrayList<String>();
  2. //Valid ZIP codes
  3. zips.add("12345");
  4. zips.add("12345-6789");
  5. //Invalid ZIP codes
  6. zips.add("123456");
  7. zips.add("1234");
  8. zips.add("12345-678");
  9. zips.add("12345-67890");
  10. String regex = "^[0-9]{5}(?:-[0-9]{4})?$";
  11. Pattern pattern = Pattern.compile(regex);
  12. for (String zip : zips)
  13. {
  14. Matcher matcher = pattern.matcher(zip);
  15. System.out.println(matcher.matches());
  16. }
  17. Output:
  18. true
  19. true
  20. false
  21. false
  22. false
  23. false

那很容易,对吗? 向我提供有关如何使用正则表达式验证美国邮政编码的问题。

学习愉快!