помощь с регуляркой

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

Модераторы: xpert13
  1. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    249
    Симпатии:
    36
    Код:
    <div class="av-img-thumb-wr ">
    <a href='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-big.jpg'>
    <img src='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-small.jpg' class='av-img-thumb' data-index='1'>
                    </a></div>
    Здравствуйте ..Не могу понять как правильно создать регулярку ,чтобы вытащить адрес ссылки ..
    На данный момент только сделал начальную стадию
    Код:
    preg_match_all("|<div class=\"av-img-thumb-wr \">([\r\w\W\s]+.*)</div>|U",$main_str,$images, PREG_PATTERN_ORDER);
    но это все выводит. а мне нужно именно значение атрибута href ..Спасибо , кто откликнется
     
  2. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    preg_match_all("/<div +class=\"av-img-thumb-wr +\">\s+<a +href='(.*?)'>/s",$main_str,$images);

    только вам в другой раздел https://www.nulled.cc/forums/218/
     
    sarkis нравится это.
  3. KolyaRS

    KolyaRS Создатель

    Регистр.:
    17 июн 2011
    Сообщения:
    16
    Симпатии:
    13
    Код:
    $code = <<<CODESET
            <div class="av-img-thumb-wr ">
    <a href='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-big.jpg'>
    <img src='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-small.jpg' class='av-img-thumb' data-index='1'>
                    </a></div>';
    CODESET;
    
    $pattern1 = "|href='(.*?)'|is";
    $pattern2 = "|<a.*?href='(.*?)'|is";
    $pattern3 = "|<div.*?class=\".*?\">.*?<a.*?href='(.*?)'|is";
    $pattern4 = "|<div.*?class=\"av-img-thumb-wr.*?\">.*?<a.*?href='(.*?)'|is";
    
    $res = array();
    preg_match_all($pattern1, $code, $res);
    echo "Result of {$pattern1}<br>";
    var_dump($res);
    
    $res = array();
    preg_match_all($pattern2, $code, $res);
    echo "Result of {$pattern2}<br>";
    var_dump($res);
    
    $res = array();
    preg_match_all($pattern3, $code, $res);
    echo "Result of {$pattern3}<br>";
    var_dump($res);
    
    $res = array();
    preg_match_all($pattern4, $code, $res);
    echo "Result of {$pattern4}<br>";
    var_dump($res);
    
    
    $pattern1 - найдёт всё что внутри одинарных кавычек следующих за href=
    $pattern2 - тоже, но обязательно внутри тега a
    $pattern3 - тоже, но внутри тэга а следующего внутри (или после) тега div с произвольным классом
    $pattern4 - тоже, но класс обязательно должен начинаться с того, как у вас в примере
     
    akifjev нравится это.
  4. Ultharas

    Ultharas Создатель

    Регистр.:
    26 сен 2014
    Сообщения:
    27
    Симпатии:
    10
    preg_match_all("/<div.*?class=\"av-img-thumb-wr.*?\">.*?<a.*?href='(.*?)'/is", $images, PREG_PATTERN_ORDER);
     
  5. d666

    d666 Создатель

    Регистр.:
    20 июн 2014
    Сообщения:
    12
    Симпатии:
    7
    регулярка для замены:

    текст|текст|текст
    на
    текст|текст@текст
     
  6. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    188
    Симпатии:
    227
    PHP:
    $text preg_replace('/([^|]+\|[^|]+)\|/''\1@'$text);
     
    d666 нравится это.