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

4you

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

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

Заранее спсибо
 

4you

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

4you

еееххххх....
2Lav

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

Да и ещё. Не посчитайте меня дико наглым. Возможны следующие варианты записи:
Некая улица 123/2-11
Некая улица 123/2-11a
Некая улица 123a-11
Некая улица 123/2-11/12
 

Demiurg

Guest
4you
может ты напишешь все возможные варианты ?
 

4you

еееххххх....
Получаю ошибку:
PHP:
Warning: Unknown modifier '/' in c:\server\html\mfldb\test.html on line 50
:(
 

Demiurg

Guest
покажи, как ты этот шаблон пытаешься вставить
 

Winer

Мимо проходил
(0-9]+)\/?([0-9a-z])-(([a-z])|\/([0-9]+)) - так???

-~{}~ 21.04.04 11:58:

4you
или ограничителем паттерна сделай не / а что-нить другое ~ например
 

Winer

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

4you

еееххххх....
Шаблон выглядит примерно так:

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

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;
 

Winer

Мимо проходил
Demiurg
тебе не кажеться что "Некая улица" никак не начинаеться с цифры ???
если считать шаблоном
некая улица пробел номер дома (если есть корпус, то косая черта номер корпуса) тире номер квартиры
-~{}~ 21.04.04 18:34:

4you
а вообще, можно почитать про regexp и самому разобраться что к чему
 

Winer

Мимо проходил
в принципе да, у нас таких улиц почти нет, вот и не подумал(так навскидку вспомнил только одну) :)
 
Сверху