Question

Problème:J'ai un champ d'adresse à partir d'une base de données Access qui a été converti à Sql Server 2005.Ce domaine a tout dans un seul domaine.J'ai besoin d'analyser les différentes sections de l'adresse dans leurs champs dans une table normalisée.J'ai besoin de faire cela pour environ 4 000 enregistrements, et elle doit être reproductible.

Hypothèses:

  1. Supposons une adresse aux états-unis (pour l'instant)

  2. supposons que la chaîne d'entrée contient parfois un destinataire (la personne traitée) et/ou une deuxième adresse de la rue (c'est à direSuite B)

  3. les états peuvent être abrégées

  4. code postal pourrait être de série à 5 chiffres ou zip+4

  5. il y a des fautes de frappe dans certains cas

Mise à JOUR:En réponse aux questions posées, les normes n'ont pas été universellement suivie, j'ai besoin de besoin de stocker les valeurs individuelles, et pas seulement de géocodage et d'erreurs moyen de faute de frappe (corrigé ci-dessus)

Les Données De L'Échantillon:

  • A.P.Croll & Fils 2299 Lewes-Georgetown Autoroute, Georgetown, DE 19947

  • 11522 Shawnee Route, Greenwood DE 19950

  • 144 Route des Rois, s.-o.Dover, DE 19901

  • Intégré Const.Services 2 Penns Façon Suite 405 New Castle, DE 19720

  • Humes Realty 33 Bride de la Crête de la Cour, Lewes, DE 19958

  • Nichols Excavation 2742 Pulaski l'Autoroute Newark, DE 19711

  • 2284 Bryn Sion de la Route, de Smyrne, DE 19904

  • VEI Douvres Carrefour, LLC 1500 Serpentine Road, Suite 100 Baltimore MD 21

  • 580 Nord Dupont Highway Dover, DE 19901

  • P. O.Boîte de 778 Dover, DE 19903

Était-ce utile?

La solution

J'ai fait beaucoup de travail sur ce type d'analyse.Parce qu'il y a des erreurs, vous ne pourrez pas obtenir une précision de 100%, mais il ya quelques choses que vous pouvez faire pour obtenir plus de chemin, et puis faire un visual BS test.Voici le chemin pour aller à ce sujet.Ce n'est pas le code, parce qu'il est assez académique à l'écrire, il n'y a pas quelque chose d'étrange, juste beaucoup de manipulation des chaînes.

(Maintenant que vous avez posté des exemples de données, j'ai fait quelques modifications mineures)

  1. Travailler à reculons.Démarrer à partir du code postal, qui sera près de la fin, et dans un des deux formats connus:XXXXX ou XXXXX-XXXX.Si cela n'apparaît pas, vous pouvez supposer que vous êtes dans la ville, l'état partie, ci-dessous.
  2. La prochaine chose, avant de le zip, va être à l'état, et il sera soit dans un deux-format lettre, ou que les mots.Vous savez ce qu'ils seront, aussi, il y a seulement 50 d'entre eux.Aussi, vous pouvez soundex les mots pour aider à compenser les erreurs d'orthographe.
  3. avant que la ville, et c'est probablement sur la même ligne que l'état.Vous pouvez utiliser un code postal de la base de données de vérifier la ville et de l'état basé sur le zip, ou au moins de l'utiliser comme un BS détecteur.
  4. L'adresse de la rue sera généralement une ou deux lignes.La deuxième ligne sera généralement le numéro de série s'il en est, mais il pourrait aussi être une boîte POSTALE.
  5. Ça va être quasi impossible de détecter un nom sur la première ou la deuxième ligne, mais si elle n'est pas précédée par un nombre (ou s'il est précédé d'un "attn:" ou "attention:" il pourrait vous donner un indice quant à savoir si c'est un nom ou une adresse de ligne.

J'espère que cela aide un peu.

Autres conseils

Je pense que l'externalisation du problème est la meilleure chose à faire:l'envoyer à Google (ou Yahoo) geocoder.Le geocoder renvoie non seulement le lat/long (qui ne sont pas d'intérêt ici), mais aussi une riche analyse de l'adresse, avec les champs remplis que vous n'avez pas envoyer (ZIP+4 et comté).

Par exemple, l'analyse des "1600 Amphitheatre Parkway, Mountain View, CA" donne

{
  "name": "1600 Amphitheatre Parkway, Mountain View, CA, USA",
  "Status": {
    "code": 200,
    "request": "geocode"
  },
  "Placemark": [
    {
      "address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
      "AddressDetails": {
        "Country": {
          "CountryNameCode": "US",
          "AdministrativeArea": {
            "AdministrativeAreaName": "CA",
            "SubAdministrativeArea": {
              "SubAdministrativeAreaName": "Santa Clara",
              "Locality": {
                "LocalityName": "Mountain View",
                "Thoroughfare": {
                  "ThoroughfareName": "1600 Amphitheatre Pkwy"
                },
                "PostalCode": {
                  "PostalCodeNumber": "94043"
                }
              }
            }
          }
        },
        "Accuracy": 8
      },
      "Point": {
        "coordinates": [-122.083739, 37.423021, 0]
      }
    }
  ]
}

Maintenant c'est parseable!

L'affiche originale a probablement longtemps déplacé, mais j'ai pris un coup de couteau au portage de Perl Geo::StreetAddress:NOUS module utilisé par geocoder.nous en C#, sous-évaluées sur CodePlex, et pense que les gens tombent sur cette question dans l'avenir peut être utile:

NOUS Analyseur Adresse

Sur le projet de la page d'accueil, j'ai essayé de parler de sa (très vrai) limitations.Car il n'est pas soutenu par l'USPS base de données valide l'adresse municipale, l'analyse peut être ambiguë et il ne peut pas confirmer ni infirmer la validité d'une adresse donnée.Il peut juste essayer de tirer des données de la chaîne.

Il est destiné pour le cas où vous avez besoin pour obtenir un ensemble de données principalement dans le droit des champs, ou que vous souhaitez fournir un raccourci à l'entrée de données (permettant aux utilisateurs de coller une adresse dans une zone de texte plutôt que de tabulation entre plusieurs champs).Il est pas signifiait pour vérifier la disponibilité d'une adresse.

Il ne cherche pas à analyser tout au-dessus de la rue, mais on pourrait sans doute diddle avec les regex pour obtenir quelque chose d'assez proche--je serais probablement casser juste à le numéro de la maison.

Je l'ai fait dans le passé.

Soit le faire manuellement, (construire une belle interface qui permet à l'utilisateur de le faire rapidement) ou automatisé et vérifier l'encontre d'un récent adresse de la base de données (vous devez acheter qu') manuellement et de gérer les erreurs.

La manutention manuelle prendra environ 10 secondes, ce qui signifie que vous pouvez faire 3600/10 = 360 par heure, de sorte 4000 devrait vous prendre environ 11 à 12 heures.Cela vous donnera un taux élevé de précision.

Pour l'automatisation, vous besoin une récente NOUS l'adresse de base de données, et de modifier vos règles contre.Je suggère de ne pas aller de fantaisie sur les regex (difficile à maintenir à long terme, de sorte que de nombreuses exceptions).Aller pour 90% match contre la base de données, faire le reste manuellement.

Obtenez une copie de la poste et de l'Adressage des Normes (USPS) à http://pe.usps.gov/cpim/ftp/pubs/Pub28/pub28.pdf et remarquez qu'il est de 130 pages de long.Regexes à mettre en œuvre qui serait de noix.

Pour des adresses internationales, tous les paris sont éteints.Basée aux etats-unis les travailleurs ne seront pas en mesure de valider.

Vous pouvez également utiliser un service de données.J'ai, cependant, pas de recommandations.

En outre:lorsque vous ne envoyer des trucs par la poste (qu'est ce que c'est, non?) assurez-vous de mettre "correction de l'adresse demandée" sur l'enveloppe (au bon endroit) et mise à jour la base de données.(Nous avons fait une simple interface graphique pour la réception personne pour le faire;la personne qui trie le courrier)

Enfin, lorsque vous avez nettoyée de données, rechercher les doublons.

Après les conseils ici, j'ai élaboré la fonction suivante dans VB qui crée passable, bien que pas toujours parfait (si un nom de société et d'une suite de la courbe, il combine la suite et de la ville) de données utilisables.N'hésitez pas à commenter/refactor/crier à moi pour casser l'un de mes propres règles, etc.:

Public Function parseAddress(ByVal input As String) As Collection
    input = input.Replace(",", "")
    input = input.Replace("  ", " ")
    Dim splitString() As String = Split(input)
    Dim streetMarker() As String = New String() {"street", "st", "st.", "avenue", "ave", "ave.", "blvd", "blvd.", "highway", "hwy", "hwy.", "box", "road", "rd", "rd.", "lane", "ln", "ln.", "circle", "circ", "circ.", "court", "ct", "ct."}
    Dim address1 As String
    Dim address2 As String = ""
    Dim city As String
    Dim state As String
    Dim zip As String
    Dim streetMarkerIndex As Integer

    zip = splitString(splitString.Length - 1).ToString()
    state = splitString(splitString.Length - 2).ToString()
    streetMarkerIndex = getLastIndexOf(splitString, streetMarker) + 1
    Dim sb As New StringBuilder

    For counter As Integer = streetMarkerIndex To splitString.Length - 3
        sb.Append(splitString(counter) + " ")
    Next counter
    city = RTrim(sb.ToString())
    Dim addressIndex As Integer = 0

    For counter As Integer = 0 To streetMarkerIndex
        If IsNumeric(splitString(counter)) _
            Or splitString(counter).ToString.ToLower = "po" _
            Or splitString(counter).ToString().ToLower().Replace(".", "") = "po" Then
                addressIndex = counter
            Exit For
        End If
    Next counter

    sb = New StringBuilder
    For counter As Integer = addressIndex To streetMarkerIndex - 1
        sb.Append(splitString(counter) + " ")
    Next counter

    address1 = RTrim(sb.ToString())

    sb = New StringBuilder

    If addressIndex = 0 Then
        If splitString(splitString.Length - 2).ToString() <> splitString(streetMarkerIndex + 1) Then
            For counter As Integer = streetMarkerIndex To splitString.Length - 2
                sb.Append(splitString(counter) + " ")
            Next counter
        End If
    Else
        For counter As Integer = 0 To addressIndex - 1
            sb.Append(splitString(counter) + " ")
        Next counter
    End If
    address2 = RTrim(sb.ToString())

    Dim output As New Collection
    output.Add(address1, "Address1")
    output.Add(address2, "Address2")
    output.Add(city, "City")
    output.Add(state, "State")
    output.Add(zip, "Zip")
    Return output
End Function

Private Function getLastIndexOf(ByVal sArray As String(), ByVal checkArray As String()) As Integer
    Dim sourceIndex As Integer = 0
    Dim outputIndex As Integer = 0
    For Each item As String In checkArray
        For Each source As String In sArray
            If source.ToLower = item.ToLower Then
                outputIndex = sourceIndex
                If item.ToLower = "box" Then
                    outputIndex = outputIndex + 1
                End If
            End If
            sourceIndex = sourceIndex + 1
        Next
        sourceIndex = 0
    Next
    Return outputIndex
End Function

En passant le parseAddress la fonction "A.P.Croll & Fils 2299 Lewes-Georgetown Autoroute, Georgetown, DE 19947" retourne:

2299 Lewes-Georgetown Hwy
A. P. Croll & Son  
Georgetown
DE
19947

J'ai travaillé dans l'adresse de traitement de domaine depuis environ 5 ans maintenant, et il est vraiment pas la panacée.La bonne solution va dépendre de la valeur des données.Si ce n'est pas très utile, le lancer à travers un analyseur comme d'autres réponses suggèrent.Si c'est encore un peu précieux, vous aurez certainement besoin d'avoir un homme évaluer et de corriger les résultats de l'analyseur.Si vous êtes à la recherche d'un entièrement automatisée et reproductible de la solution, vous voulez probablement parler à une correction de l'adresse du fournisseur comme Groupe1 ou Trillium.

SmartyStreets a une nouvelle fonction qui extrait les adresses de l'arbitraire des chaînes d'entrée.(Remarque:Je n'ai pas de travail à la SmartyStreets.)

Il réussi à extraire toutes les adresses à partir de l'échantillon d'entrée donné dans la question ci-dessus.(Par ailleurs, seulement 9 de ces 10 adresses sont valides.)

Voici une partie de la sortie:enter image description here

Et voici la sortie au format CSV de la même demande:

ID,Start,End,Segment,Verified,Candidate,Firm,FirstLine,SecondLine,LastLine,City,State,ZIPCode,County,DpvFootnotes,DeliveryPointBarcode,Active,Vacant,CMRA,MatchCode,Latitude,Longitude,Precision,RDI,RecordType,BuildingDefaultIndicator,CongressionalDistrict,Footnotes
1,32,79,"2299 Lewes-Georgetown Hwy, Georgetown, DE 19947",N,,,,,,,,,,,,,,,,,,,,,,
2,81,119,"11522 Shawnee Road, Greenwood DE 19950",Y,0,,11522 Shawnee Rd,,Greenwood DE 19950-5209,Greenwood,DE,19950,Sussex,AABB,199505209226,Y,N,N,Y,38.82865,-75.54907,Zip9,Residential,S,,AL,N#
3,121,160,"144 Kings Highway, S.W. Dover, DE 19901",Y,0,,144 Kings Hwy,,Dover DE 19901-7308,Dover,DE,19901,Kent,AABB,199017308444,Y,N,N,Y,39.16081,-75.52377,Zip9,Commercial,S,,AL,L#
4,190,232,"2 Penns Way Suite 405 New Castle, DE 19720",Y,0,,2 Penns Way Ste 405,,New Castle DE 19720-2407,New Castle,DE,19720,New Castle,AABB,197202407053,Y,N,N,Y,39.68332,-75.61043,Zip9,Commercial,H,,AL,N#
5,247,285,"33 Bridle Ridge Court, Lewes, DE 19958",Y,0,,33 Bridle Ridge Cir,,Lewes DE 19958-8961,Lewes,DE,19958,Sussex,AABB,199588961338,Y,N,N,Y,38.72749,-75.17055,Zip7,Residential,S,,AL,L#
6,306,339,"2742 Pulaski Hwy Newark, DE 19711",Y,0,,2742 Pulaski Hwy,,Newark DE 19702-3911,Newark,DE,19702,New Castle,AABB,197023911421,Y,N,N,Y,39.60328,-75.75869,Zip9,Commercial,S,,AL,A#
7,341,378,"2284 Bryn Zion Road, Smyrna, DE 19904",Y,0,,2284 Bryn Zion Rd,,Smyrna DE 19977-3895,Smyrna,DE,19977,Kent,AABB,199773895840,Y,N,N,Y,39.23937,-75.64065,Zip7,Residential,S,,AL,A#N#
8,406,450,"1500 Serpentine Road, Suite 100 Baltimore MD",Y,0,,1500 Serpentine Rd Ste 100,,Baltimore MD 21209-2034,Baltimore,MD,21209,Baltimore,AABB,212092034250,Y,N,N,Y,39.38194,-76.65856,Zip9,Commercial,H,,03,N#
9,455,495,"580 North Dupont Highway Dover, DE 19901",Y,0,,580 N DuPont Hwy,,Dover DE 19901-3961,Dover,DE,19901,Kent,AABB,199013961803,Y,N,N,Y,39.17576,-75.5241,Zip9,Commercial,S,,AL,N#
10,497,525,"P.O. Box 778 Dover, DE 19903",Y,0,,PO Box 778,,Dover DE 19903-0778,Dover,DE,19903,Kent,AABB,199030778781,Y,N,N,Y,39.20946,-75.57012,Zip5,Residential,P,,AL,

J'étais le développeur qui a écrit à l'origine du service.L'algorithme que nous avons mis en place est un peu différent des réponses ici, mais chaque extrait adresse est vérifiée à l'encontre de la recherche de l'adresse de l'API, de sorte que vous pouvez être sûr que si c'est valable ou pas.Chaque vérifié résultat est garanti, mais nous savons que les autres résultats ne sera pas parfait, parce que, comme cela a été fait en clair dans ce fil, les adresses sont imprévisibles, même pour les humains parfois.

Cela ne résout pas votre problème, mais si vous avez seulement besoin de latitude et de longitude données pour ces adresses, l'API Google Maps analyse non-formaté adresses plutôt bien.

Bonne suggestion, vous pouvez exécuter une demande CURL pour chaque adresse à Google Maps et il sera de retour l'correctement formaté adresse.De cela, vous pouvez regex au contenu de votre coeur.

+1 sur James A.Rosen a suggéré la solution a bien fonctionné pour moi, mais pour completists ce site est une histoire fascinante et la meilleure tentative que j'ai vu dans la documentation des adresses dans le monde entier: http://www.columbia.edu/kermit/postal.html

Existe-il des normes à tous dans la façon dont les adresses sont enregistrées?Par exemple:

  1. Sont il y a toujours des virgules ou des nouvelles lignes de séparation street1 de street2 de la ville de l'état de zip?
  2. Sont des types d'adresses (route, rue, boulevard, etc) toujours énoncées?toujours en abrégé?Un peu de chaque?
  3. Définir le "erreur".

Ma réponse générale est une série d'Expressions Régulières, bien que la complexité de ce dépend de la réponse.Et si il n'y a pas de cohérence à tous, alors vous ne pouvez être en mesure d'atteindre une réussite partielle avec une Regex (c'est à dire:le filtrage du code postal et de l'état) et devra faire le reste à la main (ou au moins aller à travers le reste très attentivement afin de bien repérer les erreurs).

Une autre demande pour des données de l'échantillon.

Comme il a été mentionné, je voudrais travailler à rebours à partir de la zip.

Une fois que vous avez un zip, je voudrais interroger un zip de base de données, de stocker les résultats, et de les retirer et le zip de la chaîne.

Qui vous laisse l'adresse de désordre.La PLUPART (Tous?) des adresses de commencer avec un nombre afin de trouver la première occurrence d'un nombre dans le reste de la chaîne et de saisir tout l' (nouveau) à la fin de la chaîne.Qui sera votre adresse.Quelque chose à la gauche de ce nombre est probablement un destinataire.

Vous devriez maintenant avoir la Ville, État, code Postal stockées dans une table et peut-être de deux chaînes, le destinataire et l'adresse.Pour l'adresse, vérifier l'existence d'une "Suite" ou "Apt". etc.et la diviser en deux valeurs (lignes 1 & 2).

Pour le destinataire, je voudrais punt et de saisir le mot de la fin de cette chaîne que le nom et mettre le reste dans le champ prénom.Si vous ne voulez pas le faire, vous aurez besoin de vérifier pour le titre (M., Mme, Dr, etc.) au début et à faire des hypothèses sur la base du nombre de places à la façon dont le nom est composé.

Je ne pense pas qu'il n'y a aucune façon vous pouvez analyser avec une précision de 100%.

Essayez www.address-parser.com.Nous utilisons leur service web, que vous pouvez tester en ligne

Basé sur les données de l'échantillon:

  1. Je voudrais commencer à la fin de la chaîne.Analyser un code Postal (soit le format).Lire la fin de la première de l'espace.Si aucun Code Postal a été trouvé d'Erreur.

  2. La garniture de la fin, alors pour les espaces et les caractères spéciaux (les virgules)

  3. Passez ensuite à l'État, de nouveau utiliser l'Espace comme délimiteur.Peut-être utiliser une liste de recherche pour valider 2 lettre des codes d'état, et l'état complet des noms.Si aucun état, d'erreur.

  4. Garniture espaces et les virgules à partir de la fin de nouveau.

  5. La ville devient délicat, en fait, je peux utiliser une virgule ici, au risque d'avoir trop de données dans la ville.Recherchez la virgule, ou au début de la ligne.

  6. Si vous avez encore des caractères à gauche dans la chaîne, mettre tous dans un champ d'adresse.

Ce n'est pas parfait, mais il devrait être un bon point de départ.

Si elle est humaine saisie de données, alors vous allez passer trop de temps à essayer de code autour de l'exception.

Essayez:

  1. Expression régulière pour extraire le zip code

  2. Le code postal de recherche (via approprié gouvernement DB) pour obtenir la bonne adresse

  3. Obtenir un stagiaire pour vérifier manuellement les nouvelles données correspond à l'ancien

Cela ne résout pas votre problème, mais si vous avez uniquement besoin de latitude et de longitude données pour ces adresses, l'API Google Maps va analyser les non-adresses au format assez bien.

RecogniContact est un Windows un objet COM qui traite des AMÉRICAINS et des Européens adresses.Vous pouvez l'essayer sur la droite http://www.loquisoft.com/index.php?page=8

Vous pouvez vérifier cela!! http://jgeocoder.sourceforge.net/parser.html A travaillé comme un charme pour moi.

Ce type de problème est difficile à résoudre en raison de la sous-jacentes à des ambiguïtés dans les données.

Voici un Perl solution à base de qui définit une descente récursive de la grammaire d'arbre basé sur des expressions régulières pour analyser de nombreux combinaison valide de la rue des adresses: http://search.cpan.org/~kimryan/Lingua-FR-AddressParse-1.20/lib/Lingua/FR/AddressParse.pm .Cela comprend des sous-propriétés à l'intérieur d'une adresse du type:12 1re Avenue, N Suite # 2 quelque part CA 12345 états-unis

Il est similaire à http://search.cpan.org/~timb/Geo-StreetAddress-NOUS-1.03/US.pm mentionné ci-dessus, mais fonctionne également pour les adresses qui ne sont pas des etats-unis, comme le royaume-UNI, l'Australie et le Canada.

Voici la sortie d'un de votre échantillon d'adresses.Notez que le nom de l'article devrait être supprimé de la première de "A.P.Croll & Fils 2299 Lewes-Georgetown Autoroute, Georgetown, DE 19947" pour le réduire à "2299 Lewes-Georgetown Autoroute, Georgetown, DE 19947".Ceci est facilement réalisé par suppression de toutes les données du premier nombre qui se trouve dans la chaîne.

Non matching part       ''
Error                   '0'
Error descriptions      ''
Case all                '2299 Lewes-Georgetown Hwy Georgetown DE 19947'
COMPONENTS              ''
country                 ''
po_box_type             ''
post_box                ''
post_code               '19947'
pre_cursor              ''
property_identifier     '2299'
property_name           ''
road_box                ''
street                  'Lewes-Georgetown'
street_direction        ''
street_type             'Hwy'
sub_property_identifier ''
subcountry              'DE'
suburb                  'Georgetown'

Puisqu'il y a risque d'erreur dans word, pensez à utiliser SOUNDEX combiné avec les collectivités locales algorithme pour comparer des chaînes de caractères, cela sera d'une grande aide !

à l'aide de l'API google

$d=str_replace(" ", "+", $address_url);
$completeurl ="http://maps.googleapis.com/maps/api/geocode/xml?address=".$d."&sensor=true"; 
$phpobject = simplexml_load_file($completeurl);
print_r($phpobject);

Pour ruby ou rails de développeurs il y a un beau bijou appelé street_address.J'ai été en utilisant cette sur un de mes projet et il fait le travail dont j'ai besoin.

Le seul Problème que j'ai eu a chaque fois qu'une adresse est dans ce format P. O. Box 1410 Durham, NC 27702 il est retourné à néant et, par conséquent, j'ai dû remplacer "P.O.Boîte" avec " et après cela, elle était capable de l'analyser.

Il y a des services de transmission de données donné un code postal vous donnera la liste des noms de rue dans ce code postal.

Utiliser une regex pour extraire Zip ou de l'Etat de la Cité de trouver la bonne ou si une erreur de faire les deux.tirez sur la liste des rues à partir d'un source de données Corriger la ville et l'état, puis l'adresse de la rue.Une fois que vous obtenez une Adresse valide la ligne 1 du, ville, etat, et zip, vous pouvez alors faire des hypothèses sur la ligne d'adresse 2..3

Je ne sais pas COMMENT est ce POSSIBLE, mais je n'ai pas vu cette mentionnée j'ai donc pensé que je pourrais aller de l'avant et de proposer ceci:

Si vous êtes strictement à l'américaine...obtenir une énorme base de données de tous les codes postaux, les états, les villes et les rues.Maintenant, regardez dans vos adresses.Vous pouvez valider ce que vous trouvez en essayant de voir si, par exemple, la ville vous avez trouvé existe dans l'état que vous avez trouvé, ou en vérifiant si la rue vous les avez trouvés existe dans la ville que vous avez trouvé.Si pas, les chances sont que John n'est pas pour Jean de la rue, mais le nom du destinataire...Fondamentalement, obtenir le plus d'informations que vous pouvez et vérifiez vos adresses contre elle.Un exemple extrême serait d'obtenir UNE LISTE DE TOUTES LES ADRESSES DANS LA NOUS DE UN et ensuite de trouver lequel est le plus pertinent correspondre à chacune de vos adresses...

Il est javascript port de perl Geo::StreetAddress::US package: https://github.com/hassansin/parse-address .Il regex de base et fonctionne assez bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top