Как я могу получить имя файла без расширения через регулярное выражение?

Мне нужно добавить альтернативное описание изображения, когда его нет, через регулярное выражение, но самое большее, что я получил, это извлечь имя файла с расширением.

Проблема заключается в том, чтобы извлечь только имя файла из 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

Не анализируйте HTML с помощью регулярных выражений.

nice_dev 11.11.2022 05:47

Не могли бы вы дать мне шаблон вывода для большего понимания

Avinash 11.11.2022 06:40

Результат должен выглядеть следующим образом: <img class = "alignnone size-medium wp-image-18" src = "localhost/wp-content/uploads/2015/02/300x149-jquerymobi‌​le.jpg" alt= «300x149-jquerymobile» ширина = «300» высота = «149»>

SsKacpersS 11.11.2022 07:08

Или просто: 300x139-jquerymobile

SsKacpersS 11.11.2022 07:24

Это было бы тривиально сделать с парсером DOM и pathinfo(). Есть ли реальная необходимость использовать регулярные выражения? Я имею в виду, нужно ли интегрировать его с какой-то библиотекой или инструментом, который принимает только регулярные выражения?

Álvaro González 11.11.2022 09:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете написать шаблон следующим образом:

(<img\b[^<>]*\bsrc = "[^\s"]*/([^\s]+)\.\w+")([^<>]*\balt = ")("[^<>]*>)

Демонстрация регулярных выражений

И замените использование групп захвата на:

$1$3$2$4

Обратите внимание, что это будет работать только в том случае, если src стоит перед alt.

Лучшим вариантом является использование синтаксического анализатора dom/DOMDocument, затем получение значения src и извлечение имени изображения без расширения.

Затем установите это на значение alt.

Другие вопросы по теме