@Fissium

Как составить регулярное выражение?

Здравствуйте.

Задача состоит в следующем. Имеется много фрагментов вида:
<img class="aligncenter wp-image-5877 size-full" src="/public/uploads/img_articles/2018/04/3-28.jpg" alt="Любой текст" width="600" height="380"><img class="aligncenter wp-image-5878 size-full" src="/public/uploads/img_articles/2018/04/4-29.jpg" alt="Любой текст" width="600" height="395" style="font-size: 1rem;">


Необходимо отыскать все такие фрагменты, где:
1) между >< (концом первого и началом второго изображений) нет ничего или только пробелы и переносы строк;
2) оба изображения должны быть из папки /public/uploads/img_articles/

Можно ли такое сделать с помощью регулярных выражений?
Нужна ваша помощь!
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
@dodo512
$re = '~(?:<img[^>]*?src="/public/uploads/img_articles/[^"]*"[^>]*>\s*){2,}~';
preg_match_all($re, $str, $matches);
var_dump($matches[0]);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gobananas
@gobananas
finishhim.ru
1. Допустим так: https://regex101.com/r/iqcqo4/1
>[\s\n]{0,}<img

2. Это желательно отдельно проверять
preg_match_all('/src=\"\/public\/uploads\//ism', ...)
два совпадения
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы