Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Regexp::Common::zip(3)User Contributed Perl DocumentatioRegexp::Common::zip(3)

NAME
       Regexp::Common::zip -- provide regexes for postal codes.

SYNOPSIS
	   use Regexp::Common qw /zip/;

	   while (<>) {
	       /^$RE{zip}{Netherlands}$/   and	print "Dutch postal code\n";
	   }

DESCRIPTION
       Please consult the manual of Regexp::Common for a general description
       of the works of this interface.

       Do not use this module directly,	but load it via	Regexp::Common.

       This module offers patterns for zip or postal codes of many different
       countries. They all have	the form "$RE{zip}{Country}[{options}]".

       The following common options are	used:

   "{-prefix=[yes|no|allow]}" and "{-country=PAT}".
       Postal codes can	be prefixed with a country abbreviation. That is, a
       Dutch postal code of 1234 AB can	also be	written	as NL-1234 AB.	By
       default,	all the	patterns will allow the	prefixes. But this can be
       changed with the	"-prefix" option. With "-prefix=yes", the returned
       pattern requires	a country prefix, while	"-prefix=no" disallows a
       prefix. Any argument that doesn't start with a "y" or a "n" allows a
       country prefix, but doesn't require them.

       The prefixes used are, unfortunately, not always	the same. Officially,
       ISO country codes need to be used, but the usage	of CEPT	codes (the
       same ones as used on cars) is common too. By default, each postal code
       will recognize a	country	prefix that's either the ISO standard or the
       CEPT code. That is, German postal codes may prefixed with either	"DE"
       or "D". The recognized prefix can be changed with the "-country"
       option, which takes a (sub)pattern as argument. The arguments "iso" and
       "cept" are special, and indicate	the language prefix should be the ISO
       country code, or	the CEPT code.

       Examples:
	/$RE{zip}{Netherlands}/;
		  # Matches '1234 AB' and 'NL-1234 AB'.
	/$RE{zip}{Netherlands}{-prefix => 'no'}/;
		  # Matches '1234 AB' but not 'NL-1234 AB'.
	/$RE{zip}{Netherlands}{-prefix => 'yes'}/;
		  # Matches 'NL-1234 AB' but not '1234 AB'.

	/$RE{zip}{Germany}/;
		  # Matches 'DE-12345' and 'D-12345'.
	/$RE{zip}{Germany}{-country => 'iso'}/;
		  # Matches 'DE-12345' but not 'D-12345'.
	/$RE{zip}{Germany}{-country => 'cept'}/;
		  # Matches 'D-12345' but not 'DE-12345'.
	/$RE{zip}{Germany}{-country => 'GER'}/;
		  # Matches 'GER-12345'.

   "{-sep=PAT}"
       Some countries have postal codes	that consist of	two parts. Typically
       there is	an official way	of separating those parts; but in practise
       people tend to use different separators.	For instance, if the official
       way to separate parts is	to use a space,	it happens that	the space is
       left off. The "-sep" option can be given	a pattern as argument which
       indicates what to use as	a separator between the	parts.

       Examples:
	/$RE{zip}{Netherlands}/;
		  # Matches '1234 AB' but not '1234AB'.
	/$RE{zip}{Netherlands}{-sep => '\s*'}/;
		  # Matches '1234 AB' and '1234AB'.

   $RE{zip}{Australia}{-lax}
       Returns a pattern that recognizes Australian postal codes. Australian
       postal codes consist of four digits; the	first two digits, which	range
       from '10' to '97', indicate the state, although there are exceptions.
       Territories use '02' or '08' as starting	digits.	'0909' is the only
       postal code starting with '09' -	this is	the postal code	for the
       Northern	Territory University). The (optional) country prefixes are AU
       (ISO country code) and AUS (CEPT	code).

       It the past, it was claimed that	for postal codes starting with a 0,
       the leading 0 may be omitted, and up to (and including) version
       2016060201, the leading 0 was optional. But there doesn't seem be solid
       evidence	the leading 0 is optional. So, we now require there always to
       be four digit --	unless the "{-lax}" option is given, then a possibly
       leading 0 is optional.

       Regexp::Common 2.107 and	before used $RE{zip}{Australian}. This is
       still supported.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       As of version 2016060201, no $4 or $5 will be set.

   "$RE	{zip} {Austria}"
       Returns a pattern which recognizes Austrian postal codes. Austrian
       postal codes consists of	4 digits, but not all possibilities are	used.
       This pattern matches the	postal codes in	use. The (optional) country
       prefixes	are AT (ISO country code) and AUT (CEPT	code).

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country code prefix.

   $RE{zip}{Belgium}
       Returns a pattern than recognizes Belgian postal	codes. Belgian postal
       codes consist of	4 digits, of which the first indicates the province.
       The (optional) country prefixes are BE (ISO country code) and B (CEPT
       code).

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   $RE{zip}{Denmark}
       Returns a pattern that recognizes Danish	postal codes. Danish postal
       codes consist of	four numbers; the first	digit indicates	the
       distribution region, the	second the distribution	district. The
       (optional) country prefix is DK,	which is both the ISO country code and
       the CEPT	code.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       Danish postal codes will	not start with 39. Postal codes	of the form
       39XX are	reserved from Greenland; the pattern for Danish	postal codes
       will not	recognize them.

   $RE{zip}{France}
       Returns a pattern that recognizes French	postal codes. French postal
       codes consist of	five numbers; the first	two numbers, which range from
       '01' to '98', indicate the department. The (optional) country prefixes
       are FR (ISO country code) and F (CEPT code).  Regexp::Common 2.107 and
       before used $RE{zip}{French}. This is still supported.

       Monaco uses postal codes	which are part of the numbering	system used by
       the French postal code system; their numbers start with 980. These
       numbers are "not" recognized by this pattern.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   $RE{zip}{Germany}
       Returns a pattern that recognizes German	postal codes. German postal
       codes consist of	five numbers; the first	two numbers indicating a wider
       postal area, the	last three digits a postal district.  The (optional)
       country prefixes	are DE (ISO country code) and D	(CEPT code).
       Regexp::Common 2.107 and	before used $RE{zip}{German}. This is still
       supported.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   $RE{zip}{Greenland}
       Returns a pattern that recognizes postal	codes from Greenland.
       Greenland, uses the Danish postal codes system. Postal codes starting
       with 39 are reserved for	Greenland, and all Greenlandic postal codes
       start with 39. Except the postal	code for Santa.	He uses	2412.

       The (optional) country prefix is	GL, which is use both as the ISO
       country code and	the CEPT code. Earlier versions	used DK	as the prefix.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   $RE{zip}{Italy}
       Returns a pattern recognizing Italian postal codes. Italian postal
       codes consist of	5 digits. The first digit indicates the	region,	the
       second the province. The	third digit is odd for province	capitals, and
       even for	the province itself. The fourth	digit indicates	the route, and
       the fifth a place on the	route (0 for small places, alphabetically for
       the rest).

       Codes starting with 4789	are postal codes for San Marino; they are not
       recognized by the pattern. Use "$RE {zip} {'San Marino'}" instead.

       The country prefix is either IT (the ISO	country	code), or I (the CEPT
       code).

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   "$RE	{zip} {Liechtenstein}"
       Returns a pattern which recognizes postal codes used in Liechtenstein.
       Liechtenstein uses postal codes from the	Swiss postal code system.
       This system uses	four digits. Postal codes which	start with 94, and use
       8 or 9 as a third digit are postal codes	for Liechtenstein.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       The ISO country prefix is LI, the CEPT country prefix is	LIE.

   "$RE	{zip {Monaco}"
       Returns a pattern for postal codes used in Monaco. Monaco uses a	range
       from the	system used in France. They are	5 digits, starting with	980.
       The number 98000	is used	for physical addresses.	Numbers	ending in 01
       to 99 are used for special deliveries.

       The ISO country code is MC.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   $RE{zip}{Netherlands}
       Returns a pattern that recognizes Dutch postal codes. Dutch postal
       codes consist of	4 digits and 2 letters,	separated by a space.  The
       separator can be	changed	using the "{-sep}" option, as discussed	above.
       The (optional) country prefix is	NL, which is both the ISO country code
       and the CEPT code. Regexp::Common 2.107 and earlier used
       $RE{zip}{Dutch}.	This is	still supported.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       $4  The digits part of the postal code.

       $5  The separator between the digits and	the letters.

       $6  The letters part of the postal code.

   $RE{zip}{Norway}
       Returns a pattern that recognizes Norwegian postal codes. Norwegian
       postal codes consist of four digits.

       The country prefix is either NO (the ISO	country	code), or N (the CEPT
       code).

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   "$RE	{zip} {'San Marino'}"
       Postal codes of San Marino use a	slice from the Italian postal codes.
       Any code	starting 4789, followed	by another digit belongs to San
       Marino.

       The country prefix for San Marino is SM.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

   $RE{zip}{Spain}
       Returns a pattern that recognizes Spanish postal	codes. Spanish postal
       codes consist of	5 digits. The first 2 indicate one of Spain's fifties
       provinces (in alphabetical order), starting with	00. The	third digit
       indicates a main	city or	the main delivery rounds. The last two digits
       are the delivery	area, secondary	delivery route or a link to rural
       areas.

       The country prefix is either ES (the ISO	country	code), or E (the CEPT
       code).

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       $4  The two digits indicating the province.

       $5  The digit indicating	the main city or main delivery route.

       $6  The digits indicating the delivery area, secondary delivery route
	   or a	link to	rural areas.

   "$RE	{zip} {Switzerland}"
       Returns a pattern that recognizes Swiss postal codes. Swiss postal
       codes consist of	4 digits, but not all combinations are used. Postal
       codes starting with 948 and 949 are for location	in Liechtenstein, and
       will not	be recognized by the pattern for Swiss postal codes.  Use "$RE
       {zip} {Liechtenstein}" for those.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       The country prefix is CH, for both the ISO and CEPT prefixes.

   $RE{zip}{US}{-extended => [yes|no|allow]}
       Returns a pattern that recognizes US zip	codes. US zip codes consist of
       5 digits, with an optional 4 digit extension. By	default, extensions
       are allowed, but	not required. This can be influenced by	the
       "-extended" option. If its argument starts with a "y", extensions are
       required; if the	argument starts	with a "n", extensions will not	be
       recognized. If an extension is used, a dash is used to separate the
       main part from the extension, but this can be changed with the "-sep"
       option.

       The country prefix is either US (the ISO	country	code), or USA (the
       CEPT code).

       If "{-keep}" is being used, the following variables will	be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       $4  The first 5 digits of the postal code.

       $5  The first three digits of the postal	code, indicating a sectional
	   center or a large city. New in Regexp::Common 2.119.

       $6  The last 2 digits of	the 5 digit part of the	postal code,
	   indicating a	post office facility or	delivery area. New in
	   Regexp::Common 2.119.

       $7  The separator between the 5 digit part and the 4 digit part.	Up to
	   Regexp::Common 2.118, this used to be $5.

       $8  The 4 digit part of the postal code (if any). Up to Regexp::Common
	   2.118, this used to be $6.

       $9  The first two digits	of the 4 digit part of the postal code,
	   indicating a	sector,	or several blocks. New in Regexp::Common
	   2.119.

       $10 The last two	digits of the 4	digit part of the postal code,
	   indicating a	segment	or one side of a street. New in	Regexp::Common
	   2.119.

       Questions

       o   Can the 5 digit part	of the zip code	(in theory) start with 000?

       o   Can the 5 digit part	of the zip code	(in theory) end	with 00?

       o   Can the 4 digit part	of the zip code	(in theory) start with 00?

       o   Can the 4 digit part	of the zip code	(in theory) end	with 00?

   "$RE	{zip} {'Vatican	City'}"
       Vatican City uses a single postal code; taken from the Italian system
       of postal codes,	and sharing the	single code with a part	of Rome.

       If "{-keep}" is used, the following variables will be set:

       $1  The entire postal code.

       $2  The country code prefix.

       $3  The postal code without the country prefix.

       The country prefix for Vatican City is "VA".

SEE ALSO
       Regexp::Common for a general description	of how to use this interface.

       <http://www.columbia.edu/kermit/postal.html>
	   Frank's compulsive guide to postal addresses.

       <http://www.upu.int/post_code/en/addressing_formats_guide.shtml>
	   Postal addressing systems.

       <http://www.uni-koeln.de/~arcd2/33e.htm>
	   Postal code information.

       <http://www.grcdi.nl/linkspc.htm>
	   Links to Postcode Pages.

       <https://postcode.auspost.com.au/free_display.html?id=1>
	   All Australian postal codes in use.

       <http://hdusps.esecurecare.net/cgi-bin/hdusps.cfg/php/enduser/std_adp.php?p_faqid=1014>
	   Information about US	postal codes.

       <http://en.wikipedia.org/wiki/Postal_code>
       <http://download.geonames.org/export/zip/>
	   Lots	of zip files with active postal	codes.

       <http://postal-codes.findthedata.com/>
	   Find	postal codes.

AUTHORS
       Damian Conway (damian@conway.org) and Abigail
       (regexp-common@abigail.be).

MAINTENANCE
       This package is maintained by Abigail (regexp-common@abigail.be).

BUGS AND IRRITATIONS
       Zip codes for most countries are	missing.  Send them in to
       regexp-common@abigail.be.

LICENSE	and COPYRIGHT
       This software is	Copyright (c) 2001 - 2016, Damian Conway and Abigail.

       This module is free software, and maybe used under any of the following
       licenses:

	1) The Perl Artistic License.	  See the file COPYRIGHT.AL.
	2) The Perl Artistic License 2.0. See the file COPYRIGHT.AL2.
	3) The BSD License.		  See the file COPYRIGHT.BSD.
	4) The MIT License.		  See the file COPYRIGHT.MIT.

perl v5.24.1			  2016-06-08		Regexp::Common::zip(3)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | AUTHORS | MAINTENANCE | BUGS AND IRRITATIONS | LICENSE and COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Regexp::Common::zip&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help