Нужна помощь по регулярным выражениям

Sander54

Новичок
Нужна помощь по регулярным выражениям

Прошу помочь по регулярному выражению.
Есть данные:
1. имя: ... (другие данные) адрес: ...
2. имя: ... -
3. имя: ... адрес: ...

Мне нужно собрать все имена+адреса, в случае, если адрес присутствует.
Использую регулярку типа:
if(preg_match_all('/имя(.*?)<(?:.*?)адрес(.*?)</is', $all, $result)

Если на странице все имена записаны с адресами, все работает. Но в выше указанном случае к имени из строки 2 подставляется адрес из строки 3. Что в принципе, логично, регулярка берет имя 2 и ищет дальше адрес, который оказывается в строке 3.

Как избежать ошибок? Думаю, лучшим решением был бы поиск адреса, затем поиск ближайшего от него имени слева. Перерыл все help'ы и FAQ'и на этом сайте, уверен что вопрос простой, но решить пока не могу. Заранее благодарю за помощь!
 

Sander54

Новичок
2 kruglov
Огромное спасибо!
Я чувствовал, что это оч просто, и разгадка где-то рядом :)

Только теперь, если имя и адрес находятся в разных строках, регулярка их не видит (если в одной строке, все ОК). Буду искать. Но если подскажите буду благодарен. Наверняка все также просто...
 
Сверху