Как уже упоминали другие:
Мое первое замечание: регулярные выражения вполне могут быть не тем путем, который вы хотите выбрать в этом случае .
Было бы лучше настроить что-то для анализа HTML ваших сообщений, найти якорные теги, которые содержат теги изображений, а затем проверить атрибут источника тега изображения, чтобы увидеть, заканчивается ли расширение "jpg", и если поэтому замените тег привязки тегом image.
Кроме того, использование WordPress сделает некоторую сумму сложнее, и это можно сделать . Обратите внимание, что, как вы можете прочитать в ссылке, это не то, для чего предназначен RegEx, и он не сможет обрабатывать каждую отдельную ситуацию и ссылку.
Сначала вы захотите сопоставить тег привязки, убедитесь, что он связывается с любыми расширениями файлов, затем сопоставьте тег изображения, убедитесь, что изображение заканчивается любыми расширениями файлов, захватите полную ссылку на изображение, а также сопоставьте закрывающий тег привязки, чтобы он полностью заменял.
Это выражение , которое я придумал, почти наверняка может быть лучше, но я также хотел, чтобы оно было немного более многословным и очевидным:
/<a[^>]+href ?= ?["'][^"']+\.(?:jpe?g|png)["'].+\n?\r?[\s]{0,100}<img[^>]+src ?= ?["']([^"']+\.(?:jpe?g|png))["'].+\n?\r?[\s]{0,100}<\/a>/gim
Это работает в PCRE или JS, в форматах PNG, PNG, JPG, JPG, JPEG и JPEG. Он не будет работать, если между тегом привязки и тегом изображения есть несколько разрывов строк, или с другими расширениями изображений, если вы не добавите их.
И вы просто замените весь этот поиск на: <img src="$1">