Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Разбор почтового адреса с помощью регулярных выражений / 6 сообщений из 6, страница 1 из 1
07.02.2014, 12:01
    #38553049
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор почтового адреса с помощью регулярных выражений
Есть список адресов. Формально список должен быть в таком формате (капсом указаны подставляемые значения, в квадратных скобках опциональная часть, баром варианты):

Многоквартирные дома: "ГОРОД, УЛИЦА ДОМ, кв.КВАРТИРА[ п.ПОДЪЕЗД][ э.ЭТАЖ][; ПРИМЕЧАНИЯ]"
Частные дома: "ГОРОД, УЛИЦА ДОМ ч/д[; ПРИМЕЧАНИЯ]"
Объекты (торговые центры и т.п.): "ГОРОД, УЛИЦА ДОМ[; НАИМЕНОВАНИЕ]"

Но есть некоторые нарушения:
1. Для многоквартирных домов квартира, подъезд и этаж могут следовать не в том порядке (т.е. не квартира, подъезд, этаж, а например подъезд, квартира, этаж).
2. Для частных домов ч/д часто не указывается, либо указывается неправильно ("чд", "ч-д", "ч", "д").
3. Для различных городских объектов название может указываться не после адреса, а перед ним.
4. Примечания указываются не после точки с запятой, а после запятой, дефиса, в скобках или вообще после пробела.

Не поделитесь регуляркой, которая могла бы справится с такими отклонениями?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
07.02.2014, 15:17
    #38553568
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор почтового адреса с помощью регулярных выражений
Может хоть чуть чуть сами попробуете, а мы поправим, если не получится?
...
Рейтинг: 0 / 0
07.02.2014, 16:20
    #38553728
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор почтового адреса с помощью регулярных выражений
Подкажите идею, как выделять данные из строки, если их порядок может меняться.
...
Рейтинг: 0 / 0
07.02.2014, 17:01
    #38553826
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор почтового адреса с помощью регулярных выражений
Можно проверять по нескольким шаблонам.
Можно по каким-то разделителям выделять компоненты и идентифицировать их по признакам.
Наверняка, есть еще варианты.
...
Рейтинг: 0 / 0
07.02.2014, 17:08
    #38553846
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор почтового адреса с помощью регулярных выражений
Если указывать все возможные варианты, это будет длинное выражение символов на 500.
В принципе, можно выделять данные в несколько проходов, город, улица, дом и примечания отделить довольно легко. Сложности с тем, что квартира, подъезд и этаж могут быть указаны в произвольном порядке, но их можно выделить в три прохода, на каждом проходе искать конкретное значение.
...
Рейтинг: 0 / 0
07.02.2014, 18:53
    #38553999
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор почтового адреса с помощью регулярных выражений
Alibek B.Сложности с тем, что квартира, подъезд и этаж могут быть указаны в произвольном порядкеВот это наверно самое простое. Поле начинается с определенной последовательности - "кв.", "п." или "э." и заканчивается пробелом или знаком препинания после значения. Безотносительно позиционного расположения, конечно.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Разбор почтового адреса с помощью регулярных выражений / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]