Как извлечь ссылки со страницы?

Тема в разделе "Регулярные выражения", создана пользователем kaspruk, 19 ноя 2007.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. kaspruk

    kaspruk Постоялец

    Регистр.:
    8 янв 2007
    Сообщения:
    61
    Симпатии:
    16
    1 Извлекаю ссылки таким кодом:
    PHP:
    preg_match_all("/<a.*?href=\"(http:\/\/.*?)\".*?>.*?<\/a>/i",$text,$result);
    но он склеивает несколько ссылок подряд!
    2 Хочу прописать в выражении, что бы нашло все, кроме определенной фразы, но не знаю как. Нашел лишь для символа [^h]* - найдет фразу, где нет букви h!
    3 И вообще где можно найти хорошую книгу по регулярным выражениям, желательно с примерами!
     
  2. webmaster

    webmaster Создатель

    Регистр.:
    22 июн 2007
    Сообщения:
    20
    Симпатии:
    3
    Не совсем понял вопрос...То что не нужно находить - просто не запоминаешь в переменных ?:
    вот хорошая статья по регулярным - очень толково написана.
    http://www.phpclub.ru/detail/article/regexp_1
     
  3. kaspruk

    kaspruk Постоялец

    Регистр.:
    8 янв 2007
    Сообщения:
    61
    Симпатии:
    16
    Например, должен брать ссылки, вида http://link1.ru/ Он это и делает, но при просмотре полного кода, он выдает не одну ссылку, а несколько.
    Например: должно быть
    PHP:
    <a href="http://link1.ru/">Сcылка</a>
    и
    <a href="http://link2.ru/">Сcылка2</a>
    а выдает, иногда, по две:
    PHP:
    <a href="http://link1.ru/">Сcылка</a><другой html код><a href="http://link2.ru/">Сcылка2</a>
    Я читал, что это "жадные" выражения.
     
  4. webmaster

    webmaster Создатель

    Регистр.:
    22 июн 2007
    Сообщения:
    20
    Симпатии:
    3
    /U - в конце регулярки убирает "жадность"
     
  5. Vasyaya

    Vasyaya Писатель

    Регистр.:
    5 ноя 2007
    Сообщения:
    8
    Симпатии:
    0
    попробуй

    <a.*?href=\"?'?([^ \"'>]+)\"?'?.*?>(.*?)</a>
     
  6. kaspruk

    kaspruk Постоялец

    Регистр.:
    8 янв 2007
    Сообщения:
    61
    Симпатии:
    16
    Буду пробовать. А одиночных кавычек нету, так как я их убираю с переменной до вызова регулярных выражений :)
    А вот ссылочку на книгу никто не хочет дать!
     
  7. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
  8. anarki

    anarki Прохожие

    Через утверждения (?!слово)
     
  9. nimdas

    nimdas Прохожие

    в свое время данная книга помогла понять регулярки :)
    впринципе что перл что пхп принцип одинаков

    Дж. Фридл
    Регулярные выражения, 2-е изд.
    Страниц: 464
    http://rapidshare.com/files/71185628/Regulayrnie.virageniya.RUS.rar.html
     
  10. Karlasan

    Karlasan Постоялец

    Регистр.:
    7 дек 2007
    Сообщения:
    77
    Симпатии:
    157
    я такую регу обычно юзаю (упёр на php.spb.ru:(

     
    xriby нравится это.
Статус темы:
Закрыта.