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

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

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

    JStatham Создатель

    Регистр.:
    30 июн 2009
    Сообщения:
    15
    Симпатии:
    0
    Регулярное выражение
    Код:
    $story = preg_replace ('#<a.*?href=.*?><img.*?src=\\"(.+?)\\".*?></a>#mi', '[IMG]\\1[/IMG]', $story);
    должно менять
    Код:
    <a href="qwe.ru"><img src="/qwe.jpg" /></a>
    и т.п. на
    Код:
    [IMG]/qwe.jpg[/IMG]
    а оно меняет и вот это все:
    Код:
    <a href="qwe1.ru">qwe1</a>
    здесь любой текст.
    <img src="/qweqwerrt.jpg" />
    здесь любой текст.
    <a href="qwe2.ru">qwe2</a>
    на
    Код:
    [IMG]/qweqwerrt.jpg[/IMG]
    Я не особо силен в рег.выр., поэтому прошу помощи подправить его.
     
  2. Phoenix168

    Phoenix168

    Регистр.:
    15 ноя 2007
    Сообщения:
    182
    Симпатии:
    44
    А у меня не меняет, проверял в RegexBuddy (хотя и на глаз видно, что вероятный текст между тэгами не учитывается). Или я не прав?
     
  3. Matinier

    Matinier Постоялец

    Регистр.:
    5 окт 2009
    Сообщения:
    65
    Симпатии:
    4
    У меня также все работает как задумывалось.
    Описанная регулярка не может менять указанный блок хотя бы из-за первой строки "здесь любой текст.", потому что в выражении четко указано отсутствие каких-либо символов между закрывающейся скобкой тега <a> и открывающейся тега <img>:

    $story = preg_replace ('#<a.*?href=.*?><img.*?src=\\"(.+?)\\".*?></a>#mi', '[​IMG]', $story);
     
  4. JStatham

    JStatham Создатель

    Регистр.:
    30 июн 2009
    Сообщения:
    15
    Симпатии:
    0
    эта регулярка из rss grabber'а для dle.
    у мня после этого регэкспа в сграбленной новости все между первой и последней ссылкой, включая сами ссылки меняется на [​IMG]
    а по поводу >< скажу что изображение такое(я видимо просто не полную информацию дал:(
    Код:
    <p align="center"><img src="/reviews/base/image/n97/n97pic8.jpg"></p>
    Вот кстати вырезка из HTML страницы, которую пытаюсь сграббить:
    Код:
    <p>Определенная часть людей уже успела не только подержать в руках <a href="http://allnokia.ru/catalog/nokia-N97/">Nokia N97</a> от компании Nokia, но также испытать его возможности, изучить функциональные особенности и особенности внешности.
    <p align="center"><img src="/reviews/base/image/n97/n97pic8.jpg"></p>
    <p>Хорошая вещь стоит недешево, и <a href="http://allnokia.ru/catalog/nokia-N97/"><strong>Nokia N97</strong></a> полностью подтверждает эту известную истину: цена аппарата в настоящий момент колеблется в районе 28,5 тысяч рублей.
    
    после использования регулярки получается это:
    Код:
    <p>Определенная часть людей уже успела не только подержать в руках [IMG]/reviews/base/image/n97/n97pic8.jpg[/IMG] полностью подтверждает эту известную истину: цена аппарата в настоящий момент колеблется в районе 28,5 тысяч рублей.
     
Статус темы:
Закрыта.