За последние 24 часа нас посетили 18078 программистов и 1640 роботов. Сейчас ищут 1356 программистов ...

помогите с регуляркой

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

  1. margin

    margin Активный пользователь

    С нами с:
    12 июн 2009
    Сообщения:
    20
    Симпатии:
    0
    есть контент с ссылками:

    <a href="" target="_blank">Download</a>

    таких ссылок много
    нужно получить адреса таких ссылок
    заранее спасибо за помощь
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    PHP:
    1. <?php
    2. preg_match_all('#<a\s+href="([^"])"\s+target="_blank">Download</a>#sUi', $text, $matches);
    3. echo '<pre>'.print_r($matches, true).'</pre>';
     
  3. artemKuzmin

    artemKuzmin Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    72
    Симпатии:
    0
    Я бы написал что то типо


    preg_match_all("/(?i)(?<=\<a href\=\").*(?=\"target\=\"\_blank\"\>Download\<\/a\>)/",$content,$href);

    Тогда будет браться лишь текст из ссылок
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    artemKuzmin
    думаю, что у меня и так будет браться текст из ссылок во втором элементе массива $matches, и без лишних телодвижений. чем сложнее регулярка - тем легче в ней ошибиться
     
  5. artemKuzmin

    artemKuzmin Активный пользователь

    С нами с:
    18 май 2011
    Сообщения:
    72
    Симпатии:
    0
    Та я ни че не говорю, прост стал фанат утверждений.. Если их использовать то не какие strip_tags и вообще не надо сразу фильтрованный ответ.