Вопрос про шаблон

  • Автор темы Автор темы 4you
  • Дата начала Дата начала

4you

еееххххх....
Вопрос про шаблон

Ув. посетители не подскажите плиз шаблончик для того чтобы разрезать строчку типа: Некая улица 123/1-4, результатом которой необходимо иметь:
название улицы: Некая улица
номер дома: 123
номер корпуса: 1
номер квартиры: 4

Заранее спсибо
 
Почти супер, только если корпус в адресе не указан, то сразу не пашет. Конечно перед парсингом я могу проверить на наличие корпуса в строке (через поиск `/` символа) и далее использовать соответсьвующий шаблон, но может есть универсальный метод?
 
2Lav

Не работает :(

Да и ещё. Не посчитайте меня дико наглым. Возможны следующие варианты записи:
Некая улица 123/2-11
Некая улица 123/2-11a
Некая улица 123a-11
Некая улица 123/2-11/12
 
4you
может ты напишешь все возможные варианты ?
 
Получаю ошибку:
PHP:
Warning: Unknown modifier '/' in c:\server\html\mfldb\test.html on line 50

:(
 
покажи, как ты этот шаблон пытаешься вставить
 
(0-9]+)\/?([0-9a-z])-(([a-z])|\/([0-9]+)) - так???

-~{}~ 21.04.04 11:58:

4you
или ограничителем паттерна сделай не / а что-нить другое ~ например
 
поторопился :)
если ограничителем не может быть буква-цифра-бэкслэш, входит ли туда пробел ???
 
Шаблон выглядит примерно так:

некая улица пробел номер дома (если есть корпус, то косая черта номер корпуса) тире номер квартиры
 
Demiurg

Не ругайся плиз, но данное выражение не помогает. Оно вообще ничего не режет :(

PHP:
$In = 'Некая улица 123/2-11';
$Pattern = '~([0-9]+)/?([0-9a-z])-(([a-z])|/([0-9]+))~'; 
  
 $Street1 = preg_replace($Pattern,"$1",$In);
 $House1 = preg_replace($Pattern,"$2",$In);
 $Korp1 = preg_replace($Pattern,"$3",$In);
 $Flat1 = preg_replace($Pattern,"$4",$In); 

echo $Street1;
 
Demiurg
тебе не кажеться что "Некая улица" никак не начинаеться с цифры ???
если считать шаблоном
некая улица пробел номер дома (если есть корпус, то косая черта номер корпуса) тире номер квартиры

-~{}~ 21.04.04 18:34:

4you
а вообще, можно почитать про regexp и самому разобраться что к чему
 
в принципе да, у нас таких улиц почти нет, вот и не подумал(так навскидку вспомнил только одну) :)
 
Сверху