# International Address Parser documentation

Description
Free access
Webservice
Java API
How it works
batch processing
Languages supported
Implemented countries
Countries not yet implemented
Supported formats by country
Output fields
Output format
Known issues
Links
[top]

## Description

The address parser, is a part of the gisgraphy project (free open source worldwide geocoder). Address parsing is the process of dividing a single address string into its individual component parts :

- house number
- street type (bd, street, ..)
- street name
- unit (apt, batiment, ...)
- zipcode
- state
- country
- city
- more...

it is case insensitive, manage several language, can handle several alphabet (not only ASCII character are accepted), accept address on multiples lines manage abbreviations, synonyms. number can be as digit, letter, or Roman.
It implements all the Universal Postal Union Specifications and the common usage rules, PObox, frequently used in each country (street intersection, workarounds,...) it is based on semantic processing and dictionary.
[top]

### Free access

The address parser web service is available for free :

- On the Gisgraphy site http://address-parser.gisgraphy.com/addressparser.
- with a cloud version on Google App Engine (Appspot) : http://addressparser.appspot.com/
- A graphical user interface : http://services.gisgraphy.com/public/addressparser.html

If you need dedicated access, please send a mail
[top]

### Webservice

All the parameters should be encoded in UTF-8 and the URL MUST be encoded.
Here is a summary of the Web parameters that address parser accepts :

Parameter name | required | Default value | description
address | yes | none | The address to parse
country | yes | none | The ISO 3166 country code of the country of the address
format | no | XML | Output format of the response : XML, JSON, PHP, PYTHON, RUBY, PHP
callback | no | none | The callback method name, used to wrap the content into a method name, must be alphanumeric and operate only for script outputformat (json,php,ruby,python)
indent | no | XML | Wether the feed should be indented, the value can be 'true','false', or 'on' (this is usefull if you use a checkbox in a form)

Examples :
http://addressparser.gisgraphy.com/addressparser/?address=123 3/4 N name with space 1 number blvd south floor 2 Missouri CA 12345-4536&country=us&indent=true&format=json
[top]

### Java API

    	AddressParserClient addressParser = new AddressParserClient();
    	String rawAddress = "101 Avenue des Champs-Elysées 75008 Paris";
    	AddressQuery query =new AddressQuery("101 Avenue des Champs-Elysées 75008 Paris", "FR");
    	AddressResultsDto results =addressParser.geocode(query);
    	/* or
    	Address address=new Address();
    	address.setCity("Paris");
    	address.setZipCode("75008");
    	address.setHouseNumber("101");
    	address.setStreetType("Avenue")
    	address.setStreetName("des Champs-Elysées");
    	AddressResultsDto result = addressParser.execute(address,"FR");
    	*/
    	System.out.println("Query tooks "+result.getQTime()+" ms and"+
    		" return "+result.getNumFound()+" result(s)");
    	for (Address address : results.getResult()){
    		System.out.println("housenumber : "+address.getHouseNumber());
    		System.out.println("streetType : "+address.getStreetType());
    		System.out.println("streetname : "+address.getStreetName());
    		System.out.println("PObox : "+address.getPOBox());
    		System.out.println("city : "+address.getCity());
    		System.out.println("district : "+address.getDistrict());
    		System.out.println("state : "+address.getState());
    		//see all fields description above...

    	}

[top]

## Output fields

Here are an exhaustive list of all the fields that the address parser can extract

field | description | Examples of value | Examples in address
id | id that identify a feature | 123456 | N/A
name | Name of the place, it is null in case of address but filled if common place. Name is different than recipient name. | Tour eiffel | Tour eiffel Paris
recipientName | Name of the organisation or person at the given address | Jack bauer | Jack Bauer street of philadelphia city, apt 5A, Washington
houseNumber | Official number assigned to an address by the municipality, several languages supported | 3;151-125;eight | 123 street of philadelphia city, apt 5A, Washington
houseNumberInfo | All informations that give extra informations on the house number | bis, ter, quater, | 125 bis rue de la france 75000 Paris
streetName | The official name of the street or the ordinal number | Main, 8TH | 100 MAIN ST POB 1022 SEATTLE WA 98104
streetType | The type of the street | street,st,bd,dr,bvd,... | 100 MAIN ST POB 1022 SEATTLE WA 98104
city | The city or locality, A small town or village name sometimes included in an address when the Delivery Point is outside the boundary of the main Post Town that serves it. | APPLEFORD | Leda Engineering Ltd APPLEFORD ABINGDON OX14 4PG
dependentLocality | "Sub" city attached to a big city | Dublin | boulevard of liberty Washington
PostTown | a city it is required part of all postal addresses in the United Kingdom | London | 49 Featherstone Street LONDON EC1Y 8SY
state | The state or county when applicable, can be fullName or abbreviation | WA | 100 MAIN ST POB 1022 SEATTLE WA 98104
district | The district, mainly use for russia | ALEKSCEVSKTY (r-n) | ul. Lesnaya d. 5 pos. Lesnoe ALEKSCEVSKTY r-n VORONEJSKAYA obl 247112 RUSSIAN FEDERATION
quarter | A section of an urban settlement | DOĞANBEY MAH(turkey),French Quarter | Mebusevleri Mah. Önder Cad. Ankara Ap. 11/8 ALEKSCEVSKTY
zipCode | The zip or post code | 98104 | 100 MAIN ST POB 1022 SEATTLE WA 98104
extraInfo | Informations on floor, unit, and sometimes POBOX,.. | floor 6,Hangar of the century | 100 MAIN ST POB 1022 SEATTLE WA 98104 100 MAIN ST 3rd floor SEATTLE WA 98104
POBox | Post office box, Boite postale, Casilla de Correo,.. | POB 45, POBOX 52,boite postale 89,Casilla de Correo 17 | 100 MAIN ST POB 1022 SEATTLE WA 98104 100 MAIN ST 3rd floor SEATTLE WA 98104
POBoxInfo | extra info on Post office box, Boite postale, Casilla de Correo,.. | CEDEX 01 | 5, rue Foobar, 75725 Paris CEDEX 01
POBoxAgency | Agency where the office box, Boite postale, Casilla de Correo is | KHOURIBGA PRINCIPALE | P.O 1737 KHOURIBGA PRINCIPALE 25005 KHOURIBGACEDEX
preDirection | The cardinal direction before the name of the street | N,NE;North | N broadway bd
postDirection | The cardinal direction after the name of the street | N,NE;North | boulevard of liberty north Washington
streetNameIntersection | The official name of the intersection street | Main | N street of philadelhia & W boulevard of liberty Washington
streetTypeIntersection | The type of the intersection street | street,st,bd,dr,bvd,... | N street of philadelhia & W boulevard of liberty Washington
preDirectionIntersection | The cardinal direction before the name of the intersection street | N,NE;North | N street of philadelhia & W boulevard of liberty Washington
postDirectionIntersection | The cardinal direction after the name of the intersection street | N,NE;North | N street of philadelhia & boulevard of liberty SOUTH Washington
civicNumberSuffix | The number that follow the house number (Canada only) | 1/2 | 10-123 1/2 main street NW MONTREAL QC H3Z 2Y7
floor | The floor in an address, not a floor number in a unit (Brasilia only) | 8o andar | SBN - Quadra 13 - Bloca B - 8o andar BRASILIA-DF 70002-900
sector | The sector in an address (Brasilia only) | SBN | SBN - Quadra 13 - Bloca B - 8o andar BRASILIA-DF 70002-900
quadrant | The quadrant in an address (Brasilia only) | Quadra 13 | SBN - Quadra 13 - Bloca B - 8o andar BRASILIA-DF 70002-900
block | The block in an address (Brasilia only) the block in austria, singapore,... address | Bloca B 2 | SBN - Quadra 13 - Bloca B - 8o andar BRASILIA-DF 70002-900 Rennbahnweg 25/2/15 1220 WIEN
country | The country name | USA United States France | Paris - France
countrycode | The countrycode given in the request | FR US DE | N/A

Some other meta-data fields are aslo availables :

field | description | Examples of value
message | When informations need to be given | Contrycode XX is not implemented
qtime | Number of milisecond the request has taken | 100
numFound | Number of results found | 10

Note that only unit is supported, not company, gender, firstname, lastname. Mozilla Corporation, 1981 second street building K Mountain View CA 94043-0801 is not a parsable address, but 1981 second street building K Mountain View CA 94043-0801. A support is planed to split the first part of the address (to the first comma)

## How it works

[top]
The International address is based on a modular engine, where each country has a list of syntax. So we can add a new country or add a new syntax for a country very simply. Some librairies and dictionary make the engine very customisable and give the ability to developp quickly.

## Languages supported

The parser is based on semantic analysis, it us some dictionary for street type, unit, ordinal number, etc... here is a list of already languages:

- English
- French (francais)
- Spanish (Español)
- Portuguese
- Catalan (Català)
- German (Deutsch)
- Flemish (belgium dutch)
- Estonian (Eesti)
- Basque (Euskara) for France and Spain
- Russian (with Cyrillic alphabet)

An implemented language is a language that manage unit, street type, numbers, direction (cardinal point), Post Office Box, etc. Note that all the languages does not need all those type. If the dictionnary is not pertinent, the parser will fail for some parsing. if you want to help, please Send a mail
[top]

## Implemented countries

Algeria, Angola, American Samoa, Argentina, Aruba, Australia, Austria, Belgium, Bonaire, Saint eustatius and Saba, Brazil, Cameroon, Canada, China, Congo (Democratic Republic of), Curaçao, Denmark, Falkland Islands, Faroe Islands, Finland, France, French Guiana, Germany, Guadeloupe, Guernsey, Gibraltar, Greenland, Hong Kong, India, Indonesia, Iran, Italy, Isle of Man, Jersey, Kazakhstan, Martinique, Morocco, Netherlands, Netherlands Antilles, Northern Mariana Islands, Norway, Puerto Rico, Poland, Portugal, Reunion, Russia, Saint Helena, Saint Martin, Saint Pierre and Miquelon, San Marino, Saudi Arabia, South Georgia and the South Sandwich Islands, Senegal, Singapore, Sint Maarten, Spain, Sudan, Sweden, Switzerland, Tunisia, Turkey, Turks and Caicos Islands, Ukraine, United States Minor Outlying Islands, United Kingdom, United States U.S. Virgin Islands, Vatican,
By continent : world | Africa | Asia | europe | middle east | south america
[top]

## Countries not yet implemented

Here is a list of all unimplemented countries. that mean that the default pattern will be used. if you want a new country to be implemented, please contact me it can be implmented very quickly but it depends on the address complexity.
Aland Islands, Albania, Andorra, Anguilla, Antarctica, Armenia, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belize, Benin, Bermuda, Bhutan, Bolivia, Bosnia and Herzegovina, Botswana, Bouvet Island, British Indian Ocean Territory, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Cape Verde, Cayman Islands, Central African Republic, Chad, Chile, Christmas Island, Cocos Islands, Colombia, Comoros, Cook Islands, Costa Rica, Croatia, Cuba, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, East Timor, Ecuador, , Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, French Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Ghana, Greece, Grenada, Guam, Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and McDonald Islands, Honduras, Hungary, Iceland, Iraq, Ireland, *Israel, Ivory Coast, Jamaica, *Japan, Jordan, Kenya, Kiribati, Kosovo, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Marshall Islands, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Mozambique, Myanmar, Namibia, Nauru, Nepal, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Niue, Norfolk Island, North Korea, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Pitcairn, Qatar, Republic of the Congo, Romania, Rwanda, Saint Barthélemy, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, Sao Tome and Principe, Serbia, Serbia and Montenegro, Seychelles, Sierra Leone, Slovakia, Slovenia, Solomon Islands, Somalia, South Africa, South Korea, Sri Lanka, Suriname, Svalbard and Jan Mayen, Swaziland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Togo, Tokelau, Tonga, Trinidad and Tobago, Turkmenistan, Tuvalu, Uganda, United Arab Emirates, Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Yemen, Zambia, Zimbabwe,

## Countries won't be implemented

Due to lack of informations, the following countries won't be implemented. it can be done with help of people living in this country :
Antigua and Barbuda, Western Sahara, Afghanistan,

## Supported formats by country

How to read the pattern: the words beetween braquet mean that this is optional. zip could also mean postal code. state could also mean province, and commonly represent an adminitrative division (full name or abbreviation), words beetween comma are necessary : e.g :

- (digit) means a number is required
- (,) means a comma is required
[top]

### Algeria

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] streetName [zip|,] city [CEDEX [(number)]]
    - Example :APARTMENT N° 13 ENTRANCE C IMMEUBLE ANNADA 23 BOULEVARD DE LA MOSQUEE 16027 ALGIERS
- Special notes :
  - Arabic is not supported
  - Special characters are supported
    - Example : é,è,ç,ù...
  - If zipcode is not present, a comma must be present before city
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125/135
    - Example :125a
- Variant :
  - Type : boite postale / PO Box
    - pattern :[unit] streetType streetName POBOX [unit] zip city [CEDEX [(number)]]
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 95190 Alger
    - pattern :[unit] [houseNumber] [streetType] streetName POBOX zip city [CEDEX [(number)]]
    - Example :la poste de ma ville 157 bd du 3 février boite postale 52 95190 Alger cedex
    - pattern :POBOX [unit] [zip] city [CEDEX [(number)]]
    - Example :boite postale 52 box 5 95190 Alger cedex
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### American Samoa

See United States
[top]

### Angola

- Typical address :
  - Pattern : streetType streetName [houseNumber|,] [[floor][side]] city
    - Example : Lg Dr António Viana 1 2 DTO 1250–096 LISBOA
    - Example : Rua Frederik Engels 92 – 7 o LUANDA
- Special notes :
  - There is no zipcode for Angola
  - if housenumber is not present a comma is necessary to separate streetname from city
  - side is optional and can be 'esq' or 'dto'
  - floor can be in various format (learn more
    - 13
    - 13º
    - 13°
    - c/v
    - r/c
    - 13º-D esq
- Variant :
  - Type : APARTADO (POBOX)
    - pattern : Apartado (number) city
    - Example : Apartado 42024 LUANDA

[top]

### Argentina

- Typical address :
  - Pattern : streetName houseNumber [unit] zip city
    - Example : Sarmiento 151 Piso 3 Oficina 311 BIS C1000ZAA BUENOS AIRES
- Special notes :
  - Special characters are supported
    - Example : é,í,º,ó,...
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125a
- Variant :
  - Type : Casilla de Correo (POBOX)
    - Example : Casilla de Correo 432 Correo Central C1000WAM Capital Federal

[top]

### Aruba

See Netherlands
[top]

### Australia

- Typical address :
  - Pattern : [unit] [houseNumber] streetName streetType city province_abbreviation [zip]
    - Example : Level 7 17 Jones St. NORTH SYDNEY NSW 2060
- Special notes :
  - unit can be this form [Level number / apt number]
    - Example : 7 / 25 ADELAIDE ST BRISBANE CITY QLD 4000
  - If the street type is not present, put a comma before city
    - Example : 200 Broadway, WEST BEACH SA 5024
  - sometimes, street type is before the name, in this case a comma must be specified before city
    - Example : 200 street of americas, WEST BEACH SA 5024
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125a
- Variant :
  - Type : PO BOX
    - Example : PO BOX 37, SPRINGVALE VIC 3171
  - Synonyms for PO BOX are supported
    - CMB(Community mail bag),GPO BOX (General Post Box),MS (Mail service),RSD (Roadside delivery),RMS (Roadside mail service), and more

[top]

### Austria

- Typical address :
  - Pattern : streetName [streettype] houseNumber [unit] zip city
    - Example : Garten weg 8 Rafing 3741 PULKAU
- Special notes :
  - Special characters are supported
    - Example : ß(es-zett),ä,é,ü, ö, ...
  - Language is german
  - Zipcodes A-XXX is also supported
    - Example : Pazmaniteng 24-9 A-1020 Vienna
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125d
- Variant :
  - Type : Postfach (PO BOX)
    - Example : Postfach 100 1011 WIEN
  - type : Postlagernd
    - Example : Postlagernd 53131 Bonn

[top]

### Belgium

- Typical address :
  - Pattern : streettype streetName houseNumber [unit] zip city
    - Example : Hoge Wei 27 B-1930 Zaventem
- Special notes :
  - language French and belgium are supported
    - Example : Rue du Cornet 6 4800 VERVIERS

[top]

### Bonaire, Saint eustatius and Saba

See Netherlands
[top]

### Brazil

- Typical address :
  - Pattern : streetType streetName [houseNumber|,] city-state [zip]
    - Example : Rua Visconde de Porto Seguro 1238 Sao Paulo-SP 04642-000
- Brasilia address :
  - Special portuguese characters are supported
    - Example : é,í,º,ó,...
  - Pattern : sector - quadra (digit) - block (a letter)- floor BRASILIA–DF zip
    - Example : SBNA - Quadra 13 - Bloca B - 18° andar BRASILIA-DF 70002-900
- Special notes :
  - city must be follow by a dash and the two letters state abbreviation
    - Example : Sao Paulo-SP
  - if house number is not specify, separate street name and city with a comma
    - Example : Rua Visconde de Porto Seguro, Sao Paulo-SP 04642-000
  - You can not specify citadel yet
    - Example : Sao Paulo-SP
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125c
- Variant :
  - Type : APARTADO (POBOX)
    - Example : APARTADO 1238 São Paulo - SP 04642-000

[top]

### Cameroun

We got lack of information for this country

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] [,] streetName city
    - Example :12, rue foo YAOUNDE
- Special notes :
  - the comma beetween streetType and city is only required if the city contains space (<3%), it can be improved with a predifined list of cities that contains city
    - Example : Sandilands YAOUNDE : OK
    - Example : Sandilands, Afan Samabanga : OK
    - Example : Sandilands Afan Samabanga : KO (street=Sandilands Cheung)
  - Special characters are supported
    - Example : é,è,ç,ù...
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125c
- Variant :
  - type : boite postale
    - pattern :[unit] streetType streetName pobox [unit] city
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 YAOUNDE
    - pattern :[unit] [houseNumber] [streetType] streetName pobox city
    - Example :la poste de ma ville 157 bd du 3 février bp 52 YAOUNDE
    - pattern :pobox [unit] city
    - Example :boite postale 52 box 5 YAOUNDE
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### Canada

- For all the pattern french and english are supported
- Typical address :
  - Pattern : [houseNumber] [fraction] [predirection] streetName streetType [postdirection] [unit] city [state] [zip]
    - Example : 123 3/4 N name with space 1 number blvd south floor 2 Missouri CA 12345-4536
    - Example : 123 3/4 N name with space 1 number blvd south Missouri CA
- Variant

- Basic search are supported : streetName streetType City [state] [zip]
  - Example : art avenue new york
  - Note : If street type is before streetname (e.g : street of amercia), A comma is necessary before city

- Type : city [state] [zip]
  - Example : saint louis BC 12345-4536
  - Example : saint louis british columbia 12345-4536
  - Example : saint louis BC
  - Example : saint louis 12345-4536
  - Example : saint louis
  - Note : No check is made. if you put any string it will be considered as city.

- Type : ordinal [streetType] city [state] [zip]
  - Example : 8th, V3X 1K1
  - Example : 8th saint louis
  - Example : 8th Avenue, saint louis
  - Example : 8th Avenue, saint louis bc V3X 1K1
  - Example : 8th, saint louis bc 63101
  - Note : A comma is necessary before city

- Street intersection : [houseNumber] [predirection] streetName streetType [postdirection] [unit] city [state] [zip] & [houseNumber] [predirection] streetName streetType [postdirection] [unit] city [state] [zip]
  - The separator beetween two street is '&'
  - Example : N name 1 with and in name1 street & W name 2 boulevard E Missouri
  - Example : 18th & W name 2 boulevard Missouri

- Street type before name : [houseNumber] [fraction] [predirection] streetType streetName [postdirection] [unit] city [state] [zip]
  - Example : 500 E street of america SUITE 5A TUCSON AZ 85705
  - tips : it will help the parser to have a comma before city,because we can not spearate streetname and city acuratly

- Type : PO BOX, Pattern : [houseNumber] [fraction] [POBOX or synonyms] number [STN|RPO] [(a letter)] [unit] city [state] [zip]
  - Example : 1425 JAMES ST PO BOX 4001 STN A VICTORIA BC V8X 3X4
  - Synonyms for PO BOX are supported
    - POB,POBX,POBX,...

- Special notes :
  - All the element can be in french or english, an address can mix both language but it is not recommended
    - Example (en): 500 E street of america room 5A TUCSON AZ 85705
    - Example (fr): 500 E rue des ameriques chambre 5A TUCSON AZ 85705
    - Example (en+fr): 500 E rue des ameriques chambre 5A TUCSON AZ 85705
  - State can be abbreviation or full name
    - Example : saint louis BC
    - Example : saint louis British Columbia
  - Unit can be this form [unit unitMember | unitMember unit]
    - Example : apt 4, 5th floor, HANGAR 8, room
    - Tips : unit is based on dictionary, if it fails we can add some words, just send us a mail
  - If the street type is not present, put a comma before city
    - Example : 200 18th, UCSON AZ 85705
  - Rural route and General delivery (poste restante) are not supported

[top]

### China

- Typical address :
  - Pattern : [unit] [houseNumber] streetName (,) city [zip] [province]
    - Example : ROOM 305 63 RENMIN LU, QINGDAO SHI 266033 SHANDONG
    - Example : 87/F Jiu Shi Fu Xin Mansion 36 BAOSHAN JIUCUN, BAOSHAN DISTRICT 201900 SHANGHAI
    - Note : a comma is necessary to separate streetname and City, if not we can not separate the district of the street name
    - Note : The province will be fill in the state field
- Variant

- Direct controlled municipality
  - Pattern : [unit] [houseNumber] streetName (,) District|County [zip] [Direct controlled municipality]
  - Example : 36 BAOSHAN JIUCUN, BAOSHAN DISTRICT 201900 SHANGHAI
  - Note : a comma is necessary to separate streetname and district, if not we can not separate the district of the street name
  - Note : The Direct controlled municipality will be fill in the state and city field
  - Note: defunct municipalities are managed as state

- Special notes :
  - Chinese symbols are not supported. even if it is supprted, the address are very different :
    - An address written in Chinese will start with the biggest geographical component (the province) and end with the smallest one (the addressee)
    - The same Chinese address written in the Roman (Latin) alphabet, the format will be used from the smallest geographical component at the top to the biggest at the bottom.
  - Rural route and General delivery (poste restante) are not supported

[top]

### Congo (Democratic Republic of)

We got lack of information for this country

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] [,] streetName city
    - Example :12, rue Kakamoueka BRAZZAVILLE
- Special notes :
  - the comma beetween streetType and city is only required if the city contains space (<3%), it can be improved with a predifined list of cities that contains city
    - Example : Sandilands BRAZZAVILLE : OK
    - Example : Sandilands, Yoko Yaolonga : OK
    - Example : Sandilands Yoko Yaolonga : KO (street=Sandilands Cheung)
  - Special characters are supported
    - Example : é,è,ç,ù...
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125c
- Variant :
  - type : boite postale
    - pattern :[unit] streetType streetName pobox [unit] city
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 BRAZZAVILLE
    - pattern :[unit] [houseNumber] [streetType] streetName pobox city
    - Example :la poste de ma ville 157 bd du 3 février bp 52 BRAZZAVILLE
    - pattern :pobox [unit] city
    - Example :boite postale 52 box 5 BRAZZAVILLE
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### Curaçao

See Netherlands
[top]

### Denmark

- Typical address :
  - Pattern : streetName [houseNumber] [unit] [district] zip [city]
    - Example : Kastanievej 15, 2 Agerskov 1566 COPENHAGEN V
    - Example : Niels Bohrs Alle 23, room 45 district 5230 Odense M
- Special notes :
  - special char : Æ,Ø,Å are managed
  - unit can be of various form (in english): floor number, stage, room, ...
    - Example : 3
    - Example : floor 3
  - Zip can be this form DK-#### or ##### where '#' is a digit
- Variant :
  - Type : PO BOX (Postboks)
    - Pattern : Postboks (digit) zip [city]
    - Example : Postboks 321 8660 SKANDERBORG
    - Note : It is a basic pattern that can be improved, but due to lack of informations,for now, only the pattern above is implemented

[top]

### Falkland Islands

See United kingdom
[top]

### Faroe islands

See Denmark
[top]

### Finland

- Typical address :
  - Pattern :streetName [houseNumber] [unit] [zip] city
    - Example :Mäkelänkatu 25 B 13 FI-00550 HELSINKI
- Special notes :
  - Zip with format 'FI-XXXXX'an 'XXXXX' are supported
  - Special characters are supported
    - Example : å,ä,ö,...
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-126
    - Example :125c
- Variant :
  - Type : PL (Pobox)
    - pattern :POBOX [POBOX AGENCY] zip city
    - Example :PL 447 Sentrum FI-00550 HELSINKI
    - Example :PL 447 FI-00550 HELSINKI
    - Synonyms of POBOX are supported

[top]

### France

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] streetName [zip|,] city [CEDEX [(number)]]
    - Example :caserne des pompiers étage 2 palier 3 157 bd du 3 juillet étage n°2 95190 saint jean de luz
- Special notes :
  - Special characters are supported
    - Example : é,è,ç,ù...
  - If zipcode is not present, a comma must be present before city
  - Lieu dit after street name is not supported
    - Example :25 RUE DE L EGLISE Lieu dit 33380 maville
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125c
- Variant :
  - type : boite postale
    - pattern :[unit] streetType streetName POBOX [unit] zip city [CEDEX [(number)]]
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 95190 saint jean de luz cedex
    - pattern :[unit] [houseNumber] [streetType] streetName POBOX zip city [CEDEX [(number)]]
    - Example :la poste de ma ville 157 bd du 3 février boite postale 52 95190 saint jean de luz cedex
    - pattern :POBOX [unit] [zip] city [CEDEX [(number)]]
    - Example :boite postale 52 box 5 95190 saint jean de luz cedex
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### French guiana

See France
[top]

### Germany

- Typical address :
  - Pattern : streetName [streettype] houseNumber[/number|letter] [unit] zip city
    - Example : Rhondorfer Str. 665 Appartment 47 50939 Köln
- Special notes :
  - Special characters are supported
    - Example : ß(es-zett),ä,é,ü, ö, ...
  - Packstation is not supported
    - Example : 1234567 Packstation 101 53113 Bonn
  - HouseNumber can be a range
    - Example :125-132
  - HouseNumber can be slashed or follow by numbers+letter, in this case the part after the first number will be consider as apartment or suite number
    - Example :125/126(126 will be the apartment number, so will be part of the extra information)
    - Example :125 A(a will be the suite letter, so will be part of the extra information)
  - Street name can have minus in name
    - Example :Döner-Strasse will be a streetname
    - Example :Döner Strassewill be a streetName and streetType
- Variant :
  - Type : Postfach (PO BOX)
    - Example : Postfach 3 41 41 10724 Berlin
  - number/block/flat
    - Example : Rennbahnweg 25/2/15 1220 WIEN

[top]

### Gibraltar

See United Kingdom
[top]

### Greenland

See Denmark
[top]

### Guernsey

See United Kingdom
[top]

### India

As the Universal postal union says : "There is no clear advice on how to format an address correctly ". So a specific implementation has been made for india

- Special notes :
  - Indian address can have the following components (all are facultative) whatever the order, that's allow a very flexible syntax
    - Street name then type : main road, 1st A street, foo road,...
    - Cross Street name then cross : 1st Cross, 1st A cross,...
    - House number (at the beginning) : 125, #562, new # 265,...
    - Block, phase, stage, sector, floor, unit member : , 3rd block, 4 block, 2nd stage,4th sector,Phase 3,Gopalan Mall ground floor
    - zipcode560 035, 560035
    - city (before zip and after comma)bangalore
    - state (after zip)manipur
- Typical address :
  - pattern [unit wherever in address] [house number] [street name (cross and main or single road)] + [area name with block/phase/stage/sector) city name + postcode + [stateName]
    - Example : New #5, 1st Cross, HSR Layout,80th Feet Main Road Phase 3, 4th sector, 51st block, 2nd stage,bangalore 560 035 manipur
    - Example : New #768, Ground Floor, 100 Feet Road, 12th Main Road, HAL 2nd Stage bangalore 560 035 Chamba-Kangra

[top]

### Indonesia

I have implemented the Universal postal union specifications and the specifications found on Wikipedia. it is not easy to find THE pattern on indonesian address format, so feel free to contact me if you got more informations on indonesian address format

- Typical address :
  - Pattern : [HouseNumber] streetName streetType [houseNumber|(,)] city|regencies [zip] province/state
    - Example : 73 Jalan Cilaki, BANDUNG 40115 Sulbar
    - Example : Jalan Cilaki 73 BANDUNG 40115 Sulbar
- Special notes :
  - Indonesian provinces is a defined list (in indonesian,sundanese, english, abbreviation,...) the parsing can fail if a state is not present in this list. Contact me if you think a province is missing
  - HouseNumber can be before (as Universal postal union says) or after street name (as Wikipedia and a lot of site says)
  - if house number is before streettype, a comma is necessary to distinguish streetname from cities
    - Example : 73 Jalan Cilaki, BANDUNG 40115 Sulbar
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125/132
    - Example :125-126
    - Example :125a

[top]

### Iran

I have implemented the Universal postal union specifications but no information are available on the Iran site and a lot of site gives alternative patterns , so feel free to contact me if you got more informations on Iran address format

- Typical address :
  - Pattern : streetName streetType|(,) [houseNumber] [unit] [zip] city
    - Example : Shahid Hossein Behrouz street No 17 1st floor 1193653471 TEHRAN
  - Pattern for Posttown : City [,village] [,unit/building] streetName(,) [houseNumber] [unit] [zip] Postown
    - Example : Amirieh, Farhang, Shahid Hossein Behrouz, Alavi lased No 17 1st floor 1193653471 TEHRAN
  - The City, village (when present) and building(when present) Must be be separated by comma
- Special notes :
  - if streettype is not present, a comma is necessary after the street name
    - Example : Shahid Hossein Behrouz, No 17 TEHRAN
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125/132
    - Example :125-126
    - Example :125a
- Variant :
  - Type : PO BOX
    - Pattern : PO BOX zip city
    - Example : P.O. Box 16315-336 1631481654 TEHRAN
  - Synonyms for PO BOX are supported

[top]

### Italy

- Typical address :
  - Pattern :[unit] [streetType] streetName [houseNumber] [zip] city [state]
    - Example :VIALE EUROPA 22 00144 ROMA RM
    - Example :Strada Statale 27 56 00144 ROMA RM
- Special notes :
- HouseNumber can be a range or slashed or numbers+letter
  - Example :125-132, 125/3
- Kilometric civic number is not supported yet
  - Example :VIA CARDANO KM 1,234
- Special attention has been made for Autostrada, tunnel, Strada statale, Strada regionale, Strada provinciale,...
  - Example : A13, T5, SS406, SR46,..

- Variant :
  - type : CASELLA POSTALE (POBOX)
    - Pattern :[unit] POBOX [zip] city [state]
    - Example :UFFICIO ROMA TRULLO CASELLA POSTALE 1234 00149 ROMA RM
[top]

### Isle of Man

See United Kingdom
[top]

### Guadeloupe

See France
[top]

### Hong Kong

- Typical address :
  - Pattern : [unit] [houseNumber] streetName [streetType] city|district [hong kong[NT]]
    - Example : 16 Sandilands Road WAN CHAI
  - Pattern : [houseNumber] streetName streetType [unit] city|district [hong kong[NT|new territories]]
    - Example : 150 Kennedy Road great Towers Aberdeen
- Special notes :
  - Street type is optionnal but strongly recommended
  - hong kong will be populated in state field
  - There is no zipcode in hongkong
  - If the street type is not present, the city will be considered as the last word, if it is not the case put a comma
    - Example : Sandilands Aberdeen : OK
    - Example : Sandilands, Cheung Chau : OK
    - Example : Sandilands Cheung Chau : KO (street=Sandilands Cheung)
  - Sometimes, street type is before the name, in this case a comma must be specified before city
    - Example : street of Sandilands, Aberdeen
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125/132
    - Example :125-126
    - Example :125a
- Variant :
  - Type : PO BOX
    - Pattern : POBOX [Po box agency]
    - Example : P.O. Box 42345 CAUSEWAY BAY POST OFFICE
  - Synonyms for PO BOX are supported

[top]

### Jersey

See United Kingdom
[top]

### Kazakhstan

See Russia
[top]

### Martinique

See France
[top]

### Moroco

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] streetName [zip|,] city [CEDEX [(number)]]
    - Example :APARTMENT N° 13 ENTRANCE C IMMEUBLE ANNADA 23 BOULEVARD TAROUDANT 52000 ERRACHIDIA
- Special notes :
  - Arabic is note supported
  - Special characters are supported
    - Example : é,è,ç,ù...
  - If zipcode is not present, a comma must be present before city
  - Lieu dit after street name is not supported
    - Example :25 RUE DE LA MOSQUEE Lieu dit 33380 maville
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125/135
    - Example :125a
- Variant :
  - Type : boite postale / PoBox
    - Pattern :[unit] streetType streetName POBOX [unit] zip city [CEDEX [(number)]]
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 52000 ERRACHIDIA cedex
    - Pattern :[unit] [houseNumber] [streetType] streetName POBOX zip city [CEDEX [(number)]]
    - Example :la poste de ma ville 157 bd du 3 février boite postale 52 52000 ERRACHIDIA cedex
    - Pattern :POBOX [unit] [zip] city [CEDEX [(number)]]
    - Example :boite postale 52 box 5 52000 ERRACHIDIA cedex
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### Turks and Caicos Islands

See United Kingdom
[top]

### Netherlands

- Typical address :
  - Pattern : streetName [houseNumber] [zip] city
    - Example : Surinamestraat 27 2585 GJ Den Haag
- Special notes :
  - Special characters are supported
  - zip can be ommited only if there is no housenumber (pattern streetname + city), if not the parser can be confused
  - HouseNumber can be a range or a number with a letter or slashed
    - Example :125-126
    - Example :125/126
    - Example :125c
  - if you only put streetname and city (without zip and housenumber), the last word will be considered as the city, if the city is composed, separate the streetname and the city by a comma
    - Example :alexandrastraat amsterdam, amsterdamwill be the city
    - Example :alexandrastraat the hague, 'hague' will be the city
    - Example :alexandrastraat, the hague, 'the hague' will be the city
- Variant :
  - Type : Postbus (PO BOX)
    - Example : P.O. Box 24024 2490 AA THE HAGUE
    - Example : postbus 24024 2554 FG 's-GRAVENHAAG

[top]

### Netherlands Antilles

See Netherlands
[top]

### Northern Mariana Islands

See United States
[top]

### Norway

- Typical address :
  - Pattern :streetName [houseNumber] [unit] [zip] city
    - Example :Passion 21 b 6415 Bergan
    - Example :Passion 21 first floor 6415 Bergan
- Special notes :
  - Zip with format 'NO-XXXX' and 'XXXX' are supported
  - Special characters are supported
    - Example : å,ä,ö,...
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-126
    - Example :125c
- Variant :
  - Type : Postboks (Pobox)
    - pattern :POBOX [POBOX AGENCY] zip city
    - Example :Postboks 447 Sentrum 0104 OSLO
    - Example :Postboks 447 0104 OSLO
    - Synonyms of POBOX are supported

[top]

### Puerto Rico

See United States
[top]

### Poland

- Typical address :
  - Pattern :[streetType] streetName [houseNumber] [(/)flatnumber] [dependentLocality] [zip] city
    - Example :ul. Asfaltowa 2/3 Rudzienko 05–470 KOLBIEL
- Special notes :
  - Special characters are supported
    - Example : dź,ś,ł,ą...
  - flat number will be populated in extra info
  - HouseNumber can not be a range but can end with a letter
    - Example :125c
- Variant :
  - type : Skrytka pocztowa (POBOX)
    - pattern :pobox zip city
    - Example :157 bd du 3 février boite postale 52 95190 saint jean de luz
    - Poste restante:(poste restante) zip city
    - Example :Poste restante 32–015 KLAJ

[top]

### Portugal

- Typical address :
  - Pattern : streetType streetName [houseNumber|,] [[floor][side]] [zip] city
    - Example : Lg Dr António Viana 1 2 DTO 1250–096 LISBOA
    - Example : Lg Dr António Viana LISBOA
- Typical address :
  - Pattern : streetType streetName [houseNumber|,] [[floor][side]] [city] [zip] [posttown]
    - Example : R. Leal da Camara 31 RL ESQ ALGUEIRÃO 2725–079 MEM MARTINS
- Special notes :
  - if housenumber and zip is not present a comma is necessary to separate streetname from city
  - side is optional and can be 'esq' or 'dto'
  - floor can be in various format (learn more
    - 13
    - 13º
    - 13°
    - c/v
    - r/c
    - 13º-D esq
- Variant :
  - Type : APARTADO (POBOX)
    - pattern : Apartado (number) [POBOXInfo] zip city
    - Example : Apartado 42024 EC – D. LUÍS 1201–950 LISBOA
    - Example : Apartado 42024 1201–950 LISBOA

[top]

### Reunion

See france
[top]

### Russia

- Typical address :
  - Pattern : [StreetType] streetName HouseNumber [unit] City [District] [OBLAST|KRAY|RESPUBLIKA] [country] [zip] [country]
    - Example : ул. Ореховая, д. 25 пос. Лесное АЛЕКСЕЕВСКИЙ р-н ВОРОНЕЖСКАЯ обл. РОССИЙСКАЯ ФЕДЕРАЦИЯ 247112
    - Example : ул. Ореховая, д. 25 пос. Лесное АЛЕКСЕЕВСКИЙ р-н ВОРОНЕЖСКАЯ обл. 247112, RUSSIAN FEDERATION
    - Example : ул. Лесная, д. 5, кв. 176 г. МОСКВА РОССИЙСКАЯ ФЕДЕРАЦИЯ 125075
  - when District and province(OBLAST/KRAY/RESPUBLIKA) are present, the designator should be specify
    - Example : АЛЕКСЕЕВСКИЙ р-н is valid but not АЛЕКСЕЕВСКИЙ
    - Example : ВОРОНЕЖСКАЯ обл. is valid but not ВОРОНЕЖСКАЯ
    - Synonyms and abbreviation are supported in both alphabets : Oblast, Област, obl, обл, Raion, Раион, r-n, р-н, ...
  - Country can be before or after zipcode
  - Country can be "RUSSIAN FEDERATION" or "РОССИЙСКАЯ ФЕДЕРАЦИЯ" or "RUSSIA"
  - The universal postal union recommand to reserve the last line for country, but we support the recommandation from the The russian Post)
  - Street type before name : streetName [StreetType] HouseNumber [unit] City [District] [OBLAST|KRAY|RESPUBLIKA] [country] [zip] [country]
    - Example : Большая Никитская улица, д. 25 пос. Лесное Лесное АЛЕКСЕЕВСКИЙ р-н ВОРОНЕЖСКАЯ обл. РОССИЙСКАЯ ФЕДЕРАЦИЯ 247112
- POBOX
  - Pattern : Zip city POBOX
  - Example : 125167, г.Москва, а/я 1-А
  - Pattern : POBOX city zip
  - Example : Абон.ящ. № 3749, Днепропетровск, 01055
  - Synonyms for PO BOX are supported
  - Абоне́нтский я́щик,ящик почтовогоотделения, а/я...
- Special notes :
  - Cyrilic Alphabet is fully supported
    - Example : Oblast is equivalent to Област
  - Abbreviation are supported
    - Example : Ulica == Улица == Ул == Ул. == ul == ul., ...

[top]

### Saint Helena

See United Kingdom
[top]

### Saint Martin

See france
[top]

### Saint Pierre and Miquelon

See france
[top]

### San Marino

See Italy
[top]

### Saudi arabia

- Typical address :
  - Pattern : [houseNumber] streetName streetType city [zip]
    - Example : 8228 King Abdulaziz Rd RIYADH 12643
  - Pattern : POBOX city [zip]
    - Example : P.O. Box 56577 RIYADH 11564
- Special notes :
  - zip can be simple (e.g : 12345) or extended (e.g : 12345-6789)
  - arabian language is not yet supported

[top]

### Senegal

See France
[top]

### Singapore

- Typical address :
  - Pattern : [unit] [houseNumber] streetName [streetType] city [zip]
    - Example : 16 Sandilands Road SINGAPORE 546080
  - Pattern : [block] [houseNumber] streetName [streetType] [unit] city [zip]
    - Example : Blk 35 Mandalay Road # 13–37 Mandalay Towers SINGAPORE 308215
- Special notes :
  - Street type is optionnal but strongly recommended
  - unit can be this form (#) (digit)-(digit) strings
    - Example : # 13–37 Mandalay Towers
  - If the street type is not present, the city will be considered as the last word, if it is not the case put a comma
    - Example : Sandilands, SINGAPORE 546080 : OK
    - Example : Sandilands, SINGAPORE with space 546080 : OK
    - Example : Sandilands SINGAPORE with space 546080 : KO (street=Sandilands SINGAPORE with)
  - sometimes, street type is before the name, in this case a comma must be specified before city
    - Example : street of Sandilands, SINGAPORE 546080
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125/132
    - Example :125-126
    - Example :125a
- Variant :
  - Type : PO BOX
    - Pattern : PO BOX city [zip]
    - Example : PO BOX 37, SINGAPORE 546080
  - Synonyms for PO BOX are supported

[top]

### Sint Maarten

See Netherlands
[top]

### South Georgia and the South Sandwich Islands

See United Kingdom
[top]

### Spain

- Typical address :
  - Pattern : [streetType] streetName [No] houseNumber [unit] zip city state
    - Example : Calle Sarmiento 151 Piso 3 Oficina 311 BIS 39012 Palma de Majorque (Baleares)
- Special notes :
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125/126
    - Example :125a
- Variant :
  - Type : Apartado Correos (POBOX)
    - Example : Apartado Correos 396, Malaga
    - Example : Apartado Correos 396, 08013 Barcelona

[top]

### France

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] streetName [zip|,] city [CEDEX [(number)]]
    - Example :caserne des pompiers étage 2 palier 3 157 bd du 3 juillet étage n°2 95190 saint jean de luz
- Special notes :
  - Special characters are supported
    - Example : é,è,ç,ù...
  - If zipcode is not present, a comma must be present before city
  - Lieu dit after street name is not supported
    - Example :25 RUE DE L EGLISE Lieu dit 33380 maville
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125c
- Variant :
  - type : boite postale
    - pattern :[unit] streetType streetName POBOX [unit] zip city [CEDEX [(number)]]
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 95190 saint jean de luz cedex
    - pattern :[unit] [houseNumber] [streetType] streetName POBOX zip city [CEDEX [(number)]]
    - Example :la poste de ma ville 157 bd du 3 février boite postale 52 95190 saint jean de luz cedex
    - pattern :POBOX [unit] [zip] city [CEDEX [(number)]]
    - Example :boite postale 52 box 5 95190 saint jean de luz cedex
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### Sudan

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] streetName [zip|,] city [CEDEX [(number)]]
    - Example :Immeuble de la fraternité 3 Rue Al-Comhouriya 11111 KHARTOUM
- Special notes :
  - Special characters are supported
    - Example : é,è,ç,ù...
  - If zipcode is not present, a comma must be present before city
  - Lieu dit after street name is not supported
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125c
- Variant :
  - type : boite postale
    - pattern :[unit] streetType streetName POBOX [unit] zip city
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 11111 KHARTOUM
    - pattern :[unit] [houseNumber] [streetType] streetName POBOX zip city
    - Example :la poste de ma ville 157 bd du 3 février boite postale 52 11111 KHARTOUM
    - pattern :POBOX [unit] [zip] city
    - Example :boite postale 52 box 5 11111 KHARTOUM
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### Sweden

- Typical address :
  - Pattern :streetName [houseNumber] [zip] city
    - Example :NYBY 10 123 45 LILLBYN
- Special notes :
  - Zip with format 'SE-XXX XX' is supported
  - Special characters are supported
    - Example : å,ä,ö,...
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-126
    - Example :125c
- Variant :
  - Type : POBOX (Box)
    - pattern :POBOX zip city
    - Example :Box 1237, 131 28 Nacka Strand
    - Synonyms of POBOX are supported

[top]

### Switzerland

- German and French is supported
- Typical address :
  - Pattern in German: streetName [streettype] houseNumber[/number|letter] [unit] zip city
    - Example : Rhondorfer Str. 665 Appartment 47 9876 Tihidorf
  - Pattern in French: streettype streetName houseNumber[/number|letter] [(,)unit] zip city
    - Example : Rue de bourgogne 665, Appartement 47 9876 Tihidorf
- Special notes :
  - Special characters are supported
    - Example : ß(es-zett),ä,é,ü, ö, ...
  - Packstation is not supported
    - Example : 1234567 Packstation 101 53113 Bonn
  - HouseNumber can be a range
    - Example :125-132
  - HouseNumber can be slashed or follow by numbers+letter, in this case the part after the first number will be consider as apartment or suite number
    - Example :125/126(126 will be the apartment number, so will be part of the extra information)
    - Example :125 A(a will be the suite letter, so will be part of the extra information)
  - Street name can have minus in name
    - Example :Döner-Strasse will be a streetname
    - Example :Döner Strassewill be a streetName and streetType
- Variant :
  - Type : Postfach, Case postale (PO BOX)
    - Example : Postfach 3 41 41 10724 Berlin
    - Example : Rue de Bourgogne 15 Case postale 230 9876 Tihidorf
    - Example : Zichzachweg 15 Case postale 230 9876 Tihidorf

[top]

### Turkey

- Typical address :
  - Pattern :[quater] streetName streetType [houseNumber] [(/)extra number info] [zip] [district] city
    - Example :DOĞANBEY MAH. EHİTTEĞMENKALMAZ CAD. NO: 2/311 06101 ALTINDAĞ/ANKARA
- POSTA ABONE KUTUSU (PO BOX) :
  - pattern :[POBOX INFO] POBOX zip [district] city
  - Example :ULUS PTT MERKEZİ PK 543 06040 ULUS/ANKARA
- Special notes :
- Special characters are supported
  - Example : Ğ,Ş,ü...

[top]

### Tunisia

- Typical address :
  - Pattern :[unit] [houseNumber] [streetType] streetName [zip|,] city [CEDEX [(number)]]
    - Example :étage 2 palier 3 157 AVENUE DE LA LIBERTE 1002 TUNIS BELVEDERE
- Special notes :
  - Special characters are supported
    - Example : é,è,ç,ù...
  - If zipcode is not present, a comma must be present before city
  - Lieu dit after street name is not supported
    - Example :25 RUE DE L EGALITE Lieu dit 3338 maville
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125c
- Variant :
  - Type : boite postale
    - pattern :[unit] streetType streetName POBOX [unit] zip city [CEDEX [(number)]]
    - Example :la poste de ma ville bd du 3 février boite postale 52 box 3 8129 AIN DRAHAM cedex
    - pattern :[unit] [houseNumber] [streetType] streetName POBOX zip city [CEDEX [(number)]]
    - Example :la poste de ma ville 157 bd du 3 février boite postale 52 8129 AIN DRAHAM cedex
    - pattern :POBOX [unit] [zip] city [CEDEX [(number)]]
    - Example :BOITE PRIVEE 52 box 5 8129 AIN DRAHAM cedex
    - Note : it might exist some 'boite postale' patterns that are not managed, feel free to contact me

[top]

### Ukraine

- Typical address :
  - Pattern : [StreetType] streetName HouseNumber [unit] City [District] [OBLAST|KRAY|RESPUBLIKA] [zip]
    - Example : Vul. Lisova, 2, kv.3 s. Ivanovka, Semenivsky r-n, TCHERNIGIVSKA OBL.15432
    - Example : ul. Astronomicheskaya 22, kv. 33 Kharkov 12345
  - when District and province(OBLAST/KRAY/RESPUBLIKA) are present, the designator should be specify
    - Example : АЛЕКСЕЕВСКИЙ р-н is valid but not АЛЕКСЕЕВСКИЙ
    - Example : ВОРОНЕЖСКАЯ обл. is valid but not ВОРОНЕЖСКАЯ
    - Synonyms and abbreviation are supported in both alphabets : Oblast, Област, obl, обл, Raion, Раион, r-n, р-н, ...
  - Street type before name : streetName [StreetType] HouseNumber [unit] City [District] [OBLAST|KRAY|RESPUBLIKA] [zip]
    - Example : Большая Никитская улица, д. 25 пос. Лесное Лесное АЛЕКСЕЕВСКИЙ р-н ВОРОНЕЖСКАЯ обл. 01055
- Type : PO BOX
  - Pattern : Zip city POBOX
  - Example : 125167, г.Москва, а/я 1-А
  - Oter pattern : POBOX city zip
  - Example : Абон.ящ. № 3749, Днепропетровск, 01055
  - Synonyms for PO BOX are supported in both alphabet
    - Абоне́нтский я́щик,ящик почтовогоотделения, а/я...
- Special notes :
  - Cyrilic Alphabet is fully supported for all address components
    - Example : Oblast is equivalent to Област
  - Abbreviation are supported
    - Example : Ulica == Улица == Ул == Ул. == ul == ul., ...

[top]

### United States Minor Outlying Islands

See United States
[top]

### United Kingdom

- Typical address :
  - Pattern : [unit] [houseNumber] streetName streetType city [Postown] [zip]
    - Example : room 105 6 Oxford Road Hedle End SOUTHAMPTON HP19 3EQ
- Special notes :
  - Double dependent locality is not managed
    - Example : 1 Upper Littleton Winford BRISTOL BS18 8HF
  - Postown is a predifined list, if a parsing fails, it can be a missing ones. Please contact me
    - Example : 200 Broadway, WEST BEACH SA 5024
  - Unit can not start with number (too ambiguous with houseNumber
    - Example : in 2b Barry Jackson Tower Estone Walk BIRMINGHAM B6 5BA, the 2B will be treat as houseNumber
  - HouseNumber can be a range or slashed or numbers+letter
    - Example :125-132
    - Example :125-126
    - Example :125a

[top]

### United States

- Typical address :
  - Pattern : [houseNumber] [fraction] [predirection] streetName [streetType] [postdirection] [unit] city [state] [zip]
    - Example : 123 3/4 N name with space 1 number blvd south floor 2 Missouri CA 12345-4536
    - Example : 123 3/4 N name with space 1 number blvd south Missouri CA

- Basic search are supported : streetName [streetType] City [state] [zip]
  - Example : art avenue new york
- If street type is before streetname (e.g : street of amercia), A comma is necessary before city
- Streettype is optional but STRONGLY recommended

- Type :city [state] [zip]
  - Example : saint louis al 63101
  - Example : saint louis alabama 63101
  - Example : saint louis al
  - Example : saint louis 63101
  - Example : saint louis
- No check is made. if you put any string it will be considered as city.
- state can be abbreviation or full name

- Type :ordinal [streetType] city [state] [zip]
  - Example : 8th saint louis
  - Example : 8th Avenue, saint louis
  - Example : 8th Avenue, saint louis al 63101
  - Example : 8th, saint louis al 63101
- tips : it will help, (but not necessary) the parser to have a comma before city if street type is not provided.

- Street intersection : [houseNumber] [predirection] streetName streetType [postdirection] [unit] city [state] [zip] & [houseNumber] [predirection] streetName streetType [postdirection] [unit] city [state] [zip]
  - The separator beetween two street is '&'
  - Example : N name 1 with and in name1 street & W name 2 boulevard E Missouri
  - Example : 18th & W name 2 boulevard Missouri

- Street type before name : [houseNumber] [fraction] [predirection] streetType streetName [postdirection] [unit] city [state] [zip] [&] [houseNumber] [predirection] streetName streetType [postdirection] [unit] city [state] [zip]
  - Example : 500 E street of america SUITE 5A TUCSON AZ 85705
  - tips : it will help the parser to have a comma before city, because we can not spearate streetname and city acuratly

- Type : PO BOX
  - Example : 100 MAIN ST PO BOX 1022 SEATTLE WA 98104
- Synonyms for PO BOX are supported
  - POB,POBX,POBX,...

- Special notes :
  - State can be abbreviation or full name
    - Example : saint louis al 63101
    - Example : saint louis alabama 63101
  - unit can be this form [unit unitMember | unitMember unit]
    - Example : apt 4, 5th floor, HANGAR 8, room
    - Tips : unit is based on dictionary, if it fails we can add some words, just send us a mail
  - If the street type is not present, put a comma before city
    - Example : 200 18th, UCSON AZ 85705
[top]

### U.S. Virgin Islands

See United States
[top]

### Vatican

See Italy
[top]

## known issues

- city with unit member (lake:AMBROSIA LAKE park:SANDIA PARK, ...) in name, can confuse the parser
- ' (Simple quote) is not kept in parsing results (reason: serialisation in json ...)

[top]

## Links

- http://en.wikipedia.org/wiki/Storey