Мне нужно добавить альтернативное описание изображения, когда его нет, через регулярное выражение, но самое большее, что я получил, это извлечь имя файла с расширением.
Проблема заключается в том, чтобы извлечь только имя файла из src изображения без какого-либо расширения и поместить его в качестве замещающего текста изображения.
Самое дальнее, что я получил в коде:
/(<img.*?)(src = ")(.*?/)([^/]*")(.*?)(alt = ")(.*?")([^>]*>)/
с примером:
<img class = "alignnone size-medium wp-image-18" src = "http://localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt = "" width = "300" height = "149">
Работали над: Регулярное выражение101
Не могли бы вы дать мне шаблон вывода для большего понимания
Результат должен выглядеть следующим образом: <img class = "alignnone size-medium wp-image-18" src = "localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt= «300x149-jquerymobile» ширина = «300» высота = «149»>
Или просто: 300x139-jquerymobile
Это было бы тривиально сделать с парсером DOM и pathinfo(). Есть ли реальная необходимость использовать регулярные выражения? Я имею в виду, нужно ли интегрировать его с какой-то библиотекой или инструментом, который принимает только регулярные выражения?






Вы можете написать шаблон следующим образом:
(<img\b[^<>]*\bsrc = "[^\s"]*/([^\s]+)\.\w+")([^<>]*\balt = ")("[^<>]*>)
Демонстрация регулярных выражений
И замените использование групп захвата на:
$1$3$2$4
Обратите внимание, что это будет работать только в том случае, если src стоит перед alt.
Лучшим вариантом является использование синтаксического анализатора dom/DOMDocument, затем получение значения src и извлечение имени изображения без расширения.
Затем установите это на значение alt.
Не анализируйте HTML с помощью регулярных выражений.