Кто-нибудь имеет класс 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 веб-сервиса проверки адреса .
Как насчет этого,