Составление регулярного выражения

Статус
В этой теме нельзя размещать новые ответы.

makis

Новичок
Составление регулярного выражения

Здравствуйте.
Мне необходимо составить регулярное выражение.
Пример:
Есть html страница с подобным содержанием:
Код:
<p align="right"><strong>Дуня Кулакова, Владимир Жириновский,<br><a href="mailto:[email protected]">Джорж Буш</a>, Руководитель: <a href="mailto:[email protected]">Пупкин Василий</a></strong><br>
Нужно вытянуть в массив только пользователей без руководителя и привести к виду Имя Фамилия | E-mail. Тех, у кого e-mail'а нет, сохраняем без оного.
Т.е. в идеале должно быть так:
Код:
Дуня Кулакова
Владимир Жириновский
Джордж Буш | [email][email protected][/email]
В строке могут быть, а могут и не быть тэги <br /> и <br> (без слеша). Руководителя также нужно искоренить.
Максимум на что додумался:
PHP:
preg_match_all('|(?<=<p align=\"right\"><strong>)(?<!\">>)([А-Я][\.\-_А-Яа-я]{1,}\s[А-Я][\.\-_А-Яа-я]{1,})|', $content, $authors_wte);
Но работает криво. Так как у каждого руководителя указана электропочта я делал ретроспективную проверку (?<!\">>), что делает невозможных сохранение информации о всех людях с указанной электропочтой, а не только руководителя. Жириновского тоже выбрать не удаётся, так как не знаю как можно объединить несколько ретроспективных проверок. Для него подошёл бы вариант (?<=,\s).
Совсем башка уже не варит. Подскажите пожалуйста.
P.S. Все имена и Фамилии начинаются с заглавных букв русского языка. Поэтому сделал так как есть.
 

Апокалипсис

тех дир matras.ru
Парсинг html страниц не обсуждается на этом форуме по морально-этическим соображениям.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху