Регулярка возвращает не все

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

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

    partizzzzzan Создатель

    Регистр.:
    8 май 2010
    Сообщения:
    13
    Симпатии:
    1
    Есть такой код
    HTML:
    <a href="javascript:void(0);" class="tooltip" title="Blue" onclick="$('.jqzoom').attr('onclick', 'turnOn(0)'); $('#alt_gallery').remove(); $('<div id=\'alt_gallery\'>Blue <span><a href=\'/img/manufacture/1/5/34221.jpeg\' target=\'blank\'>Скачать изображение</a></span></div>').appendTo('#imgdiv');" rel="{gallery: 'gallery', smallimage: '/img/manufacture/1/5/34222.jpeg', largeimage: '/img/manufacture/1/5/34221.jpeg'}"><img title="Blue" src="/img/manufacture/1/5/34224.jpeg" alt="Коляска Jetem Twist" /><span class="classic">Blue</span></a><a href="javascript:void(0);" class="tooltip" title="Grey" onclick="$('.jqzoom').attr('onclick', 'turnOn(1)'); $('#alt_gallery').remove(); $('<div id=\'alt_gallery\'>Grey <span><a href=\'/img/manufacture/1/5/34231.jpeg\' target=\'blank\'>Скачать изображение</a></span></div>').appendTo('#imgdiv');" rel="{gallery: 'gallery', smallimage: '/img/manufacture/1/5/34232.jpeg', largeimage: '/img/manufacture/1/5/34231.jpeg'}"><img title="Grey" src="/img/manufacture/1/5/34234.jpeg" alt="Коляска Jetem Twist" /><span class="classic">Grey</span></a><a href="javascript:void(0);" class="tooltip" title="Orange/Grey" onclick="$('.jqzoom').attr('onclick', 'turnOn(2)'); $('#alt_gallery').remove(); $('<div id=\'alt_gallery\'>Orange/Grey <span><a href=\'/img/manufacture/1/5/34241.jpeg\' target=\'blank\'>Скачать изображение</a></span></div>').appendTo('#imgdiv');" rel="{gallery: 'gallery', smallimage: '/img/manufacture/1/5/34242.jpeg', largeimage: '/img/manufacture/1/5/34241.jpeg'}"><img title="Orange/Grey" src="/img/manufacture/1/5/34244.jpeg" alt="Коляска Jetem Twist" /><span class="classic">Orange/Grey</span></a><a href="javascript:void(0);" class="tooltip" title="Pistacio" onclick="$('.jqzoom').attr('onclick', 'turnOn(3)'); $('#alt_gallery').remove(); $('<div id=\'alt_gallery\'>Pistacio <span><a href=\'/img/manufacture/1/5/34251.jpeg\' target=\'blank\'>Скачать изображение</a></span></div>').appendTo('#imgdiv');" rel="{gallery: 'gallery', smallimage: '/img/manufacture/1/5/34252.jpeg', largeimage: '/img/manufacture/1/5/34251.jpeg'}"><img title="Pistacio" src="/img/manufacture/1/5/34254.jpeg" alt="Коляска Jetem Twist" /><span class="classic">Pistacio</span></a><a href="javascript:void(0);" class="tooltip" title="Violet" onclick="$('.jqzoom').attr('onclick', 'turnOn(4)'); $('#alt_gallery').remove(); $('<div id=\'alt_gallery\'>Violet <span><a href=\'/img/manufacture/1/5/34261.jpeg\' target=\'blank\'>Скачать изображение</a></span></div>').appendTo('#imgdiv');" rel="{gallery: 'gallery', smallimage: '/img/manufacture/1/5/34262.jpeg', largeimage: '/img/manufacture/1/5/34261.jpeg'}"><img title="Violet" src="/img/manufacture/1/5/34264.jpeg" alt="Коляска Jetem Twist" /><span class="classic">Violet</span></a><a href="javascript:void(0);" class="tooltip" title="Blue" onclick="$('.jqzoom').attr('onclick', 'turnOn(5)'); $('#alt_gallery').remove(); $('<div id=\'alt_gallery\'>Blue <span><a href=\'/img/manufacture/1/5/34281.jpeg\' target=\'blank\'>Скачать изображение</a></span></div>').appendTo('#imgdiv');" rel="{gallery: 'gallery', smallimage: '/img/manufacture/1/5/34282.jpeg', largeimage: '/img/manufacture/1/5/34281.jpeg'}"><img title="Blue" src="/img/manufacture/1/5/34284.jpeg" alt="Коляска Jetem Twist" /><span class="classic">Blue</span></a>
    нужно найти:
    largeimage: '/img/manufacture/1/5/34221.jpeg'
    largeimage: '/img/manufacture/1/5/34231.jpeg'
    largeimage: '/img/manufacture/1/5/34241.jpeg'
    largeimage: '/img/manufacture/1/5/34251.jpeg'
    largeimage: '/img/manufacture/1/5/34261.jpeg'
    largeimage: '/img/manufacture/1/5/34281.jpeg'

    применяю регулярку:
    /largeimage: [\S]+\.(?:jpeg|jpg|gif)\'/
    В онлайн-конструкторах регулярок это срабатывает,
    но php функция
    PHP:
    preg_match_all("/largeimage: [\S]+\.(?:jpeg|jpg|gif)\'/"$str$img)
    возвращает только первое вхождения. остальные не удается получить... не знаю в чем проблема.
     
  2. Viodele

    Viodele Механик

    Administrator
    Регистр.:
    17 дек 2011
    Сообщения:
    117
    Симпатии:
    495
    У меня регулярка работает без проблем.
    001.jpg
    Может что с переменными напутали?
     
  3. Volander

    Volander Постоялец

    Регистр.:
    18 мар 2013
    Сообщения:
    51
    Симпатии:
    2
    У меня то же все работает. Скорее всего, дело действительно в переменных, проверьте их.
     
  4. CAPAXA

    CAPAXA

    Регистр.:
    7 июн 2007
    Сообщения:
    932
    Симпатии:
    556
  5. Viodele

    Viodele Механик

    Administrator
    Регистр.:
    17 дек 2011
    Сообщения:
    117
    Симпатии:
    495
    Чисто ради любопытства. Зачем добавлять модификатор глобального поиска в preg_match_all? Масло масляное. Нет? :crazy:
     
  6. ProxyTube

    ProxyTube Создатель

    Регистр.:
    10 сен 2013
    Сообщения:
    14
    Симпатии:
    2
    а если добавить в конец модификатор /m

    и возмите в скобки ту часть на которую нужно мультирезультат получить
    /largeimage: ([\S]+\.(?:jpeg|jpg|gif))\'/m
     
    Последнее редактирование модератором: 18 сен 2013
  7. muzmsk

    muzmsk Писатель

    Регистр.:
    7 сен 2013
    Сообщения:
    4
    Симпатии:
    0
    попробуй так
     
  8. partizzzzzan

    partizzzzzan Создатель

    Регистр.:
    8 май 2010
    Сообщения:
    13
    Симпатии:
    1
    Да мой косяк был, все поправил, заработало!
     
Статус темы:
Закрыта.