Регулярка для обрамления картинок в лайтбокс

programmer_2006

Новичок
Регулярка для обрамления картинок в лайтбокс

Есть цмс, в контент вставляются картинки, через TinyMCE необходимо их завернуть в лайтбокс и при изменении картинки изменить лайтбокс (ссылки и т.д.)

Если в тексте есть картинки
<img src="/img/1_48.jpg" class="test">
(новые) или есть картинки завернутые в лайтбокс
<a class="lightbox" href="/img/1_48.jpg"> <img src="/img/1_48.jpg" class="test"> </a>
то я должен получить урлы и исходные данные для замены/заворачивания картинок.

Для поиска картинок написал такую регулярку

PHP:
/(<img.*src=["|\'](.+?)["|\'].*[$>])/s
но работает не совсем корректно при тексте вида

aaaaaaaa<a class="lightbox" href="/img/1_48.jpg"> <img src="/img/1_48.jpg" class="test"> </a>bbbbbbbbb<img src="/img/1_48.jpg" class="test">
захватывает "</a> bbbbbb", Видать как то не правильно задал концовку регулярки, подскажите плиз.

Итоговая регулярка получилась вида
PHP:
(<a.*href=["|\'](.+?)["|\'].*(<img.*src=["|\'](.+?)["|\'].*[$>]).+[<\/a>])/s
И опять проблема с концовкой, если добавить после </a>bbbbbbbbbbbb</div> то хавается текст с дивом.

Буду очень признателен за помощь в корректировки регулярки.

-~{}~ 18.03.10 00:29:

Еще одна маленькая проблемка, последняя регулярка обрабатывает случаи когда картинка завернута в лайтбокс, не удалось придумать как сделать так, что бы регулярка два случая обрабатывала.
 

Ярослав

Новичок
Нужно жадность убрать
Код:
/(<img.+?src=["|\'](.+?)["|\'].*?>)/si
Вот как получилось, хотя коряво немного
 

programmer_2006

Новичок
Автор оригинала: Ярослав
Нужно жадность убрать
Код:
/(<img.+?src=["|\'](.+?)["|\'].*?>)/si
Вот как получилось, хотя коряво немного
Спасибо за помощь, получилась регулярка вида
PHP:
(<a.+?href=["|\'](.+?)["|].*?(<img.+?src=["|\'](.+?)["|].*?>).*?</a>)
В принципе то, что надо. Ед. как бы ее заставить обрабатывать два случая сразу...
 
Сверху