Russian Qt Forum

Qt => Общие вопросы => Тема начата: nixman05 от Октябрь 25, 2010, 20:28



Название: Парсинг адреса (номер дома, кв. телефон)
Отправлено: nixman05 от Октябрь 25, 2010, 20:28
Есть некоторая таблица в базе данных.
Одно из его полей содержит адресс. Причем аддресс заполнен в произольном виде.
для извлечения номера телефона я использовал следующее регулярное выражение:
 т\.?\s?\d{1}-\d{1,2}-\d{1,2}  -- номер пятизначный, начинается с буквы "т", после которого может идти точка и/или пробел. Затем следует сам номер.
Номер дома квартиры может храниться в следующем виде (1)  (дом номер_дома кв. номер квартиры) -- для этого случая всё прекрастно находится. а может и в виде
(2) номер_дома/номер_квартиры -- для нахождения данного случая я использую следующее регулярное выражение:
\d+\w*\b(-|/)\w+  оно находит номер дома и квартиры эсли они указаны сторым способон, но если они указаны первым способом возвращается часть номера телефона.

Каким образом модифицировать это регулярное выражение, чтобы выполнялась проверка на наличие "т. " перед местом извлечения предпологаемого адресса? (Каким образом предотвратить извлечение части номера телефона, если адрес записан в (1) виде? )


Название: Re: Парсинг адреса (номер дома, кв. телефон)
Отправлено: crossly от Октябрь 30, 2010, 14:56
это бред... храните в отдельных полях...


Название: Re: Парсинг адреса (номер дома, кв. телефон)
Отправлено: alexman от Октябрь 30, 2010, 14:57
или же в xml