Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите составить регулярное выражение

14K
12 января 2008 года
makis
29 / / 16.01.2007
Здравствуйте.
Мне необходимо составить регулярное выражение.
Пример:
Есть html страница с подобным содержанием:
[HTML]
<p align="right"><strong><a href="mailto:papa@karlo.com">Дуня Кулакова</a>,<br />Владимир Жириновский,<br><a href="mailto:bush@george.com">Джорж Буш</a>, Руководитель: <a href="mailto:pupkin@vasya.su">Пупкин Василий</a></strong><br>
[/HTML]
Нужно вытянуть в массив только пользователей без руководителя и привести к виду Имя Фамилия | E-mail. Тех, у кого e-mail'а нет, сохраняем без оного.
Т.е. в идеале должно быть так:
 
Код:
Дуня Кулакова | [email]papa@karlo.com[/email]
Владимир Жириновский
Джордж Буш | [email]bush@george.com[/email]


В строке могут быть, а могут и не быть тэги <br /> и <br> (без слеша). Руководителя также нужно искоренить.

Что-то я по-всякому пробую, но никак не выходит :(. Знаю я синтаксис регулярок очень плохо. Подскажите пожалуйста.
15K
13 января 2008 года
hel
78 / / 10.11.2007
Попробуй это, только донастрой по вкусу.
Код:
<?php
function getVal($start,$end,&$string){
    $pre_value=@explode($start,$string);
    $value=@explode($end,$pre_value[1]);
    return $value[0];
}
$string='<p align="right"><strong><a href="mailto:papa@karlo.com">Дуня Кулакова</a>,<br />Владимир Жириновский,<br><a href="mailto:bush@george.com">Джорж Буш</a>, Руководитель: <a href="mailto:pupkin@vasya.su">Пупкин Василий</a></strong><br>';
preg_match_all("/(\<a\\x20href\=\"mailto\:.+?\"\>)?\w{3,}\\x20\w{3,}(\<\/a\>)?/i",$string,$users);
foreach($users[0] as $n=>$user){
    $user_mail=getVal(":","\"",$user);
    if(empty($user_mail)){
        $user_name=$user;
        $user_mail="";
    }
    else{
        $user_name=getVal(">","<",$user);
        $user_mail=' | '.$user_mail;
    }
    echo(($n+1).'. '.$user_name.$user_mail.'<br>');
}
?>


Результат:
[HTML]1. Дуня Кулакова | papa@karlo.com<br>2. Владимир Жириновский<br>3. Джорж Буш | bush@george.com<br>4. Пупкин Василий | pupkin@vasya.su<br>[/HTML]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог