Parse A Steet Address в компоненты

Кто-нибудь имеет класс php или регулярное выражение для анализа адреса в компонентах? По крайней мере, он должен разбиться на эти компоненты: информация о улице, состояние, почтовый индекс, страна

    Агностическим решением для библиотеки / языка было бы использование геокодера Google для этого. Он может возвращать подробную, разбитую информацию о заданном адресе.

    http://code.google.com/apis/maps/documentation/services.html#Geocoding_Structured

    Изменить: используйте это как пример, если ваши данные форматируются очень точно. Как отметил Страгер, в большинстве случаев будет слишком много изменений в данных, чтобы эффективно использовать регулярное выражение.

    Предполагая, что ваш вход имеет формат:

    [Street Name], [State], [ZIP], [Country] 

    Это регулярное выражение будет делать трюк:

     m/^(.+?),(.+?),([0-9]+),(.+)$/ 

    Но регулярные выражения довольно сложны … если вы собираетесь использовать это для чего-то значительного, я бы предложил потратить время на изучение Regexes. Я всегда находил этот обманщик очень полезным:

    http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/

    Если вы говорите о ранее существовавших данных, удачи вам. Если это то, над чем вы контролируете ввод, я рекомендую создать разделение различных частей адреса на входном уровне. Jus 'предложение.

    Вот версия Python, использующая pyparsing для разбора уличных адресов. Это не PHP, но может дать вам некоторое представление о сложности проблемы.

    Я нашел парсер php-адресов, который был разработан для Польши, но может работать в другом месте с некоторой модификацией:

    Парсер PHP-адресов

    Проблема в том, что сами адреса приходят во всех формах и размерах, и они не являются самооправданными объектами. Это означает, что нет никакого способа узнать, правильно ли вы сделали это, не проверив адрес вручную (и даже тогда он может быть подвержен ошибкам) ​​или с помощью какого-то программного обеспечения для проверки адреса – будь то настольное программное обеспечение или онлайн-приложение ,

    Существует несколько веб-служб проверки адресов, которые могут принимать адрес и разбивать его на его составные части, и делать это безопасным образом, когда результаты были сертифицированы как действительные.

    Я должен упомянуть, что я являюсь основателем SmartyStreets. Мы проводим проверку, которая включает в себя возможности, которые вы задали для адресов в США. Наш флагманский продукт – это LiveAddress, который является API веб-сервиса проверки адреса .

    Как насчет этого,

    http://www.analysisandsolutions.com/software/addr/