Regex для захвата только изображений JPG

У меня есть это регулярное выражение в PHP:

$regex = '/<img[^>]*'.'src=[\"|\'](.*)[\"|\']/Ui'; 

Он фиксирует все источники тегов изображений в строке, но я хочу только собирать файлы JPG. Я пытался объединиться с (. *), Но я только доказал, что сосать в регулярном выражении … Сейчас я фильтрую массив, но чувствую себя слишком сильно, как взломать, когда я могу просто сделать это прямо с правильное совпадение.

Related of "Regex для захвата только изображений JPG"

Попробуй это:

 $regex = '/<img ([^>]* )?src=[\"\']([^\"\']*\.jpe?g)[\"\']/Ui'; 

Я также удалил дополнительный | в классах символов, которые не нужны.

Во-первых, получите все теги img с помощью парсера HTML. Затем возьмите те, чье значение атрибута src сопоставляется с regex \.(jpeg|jpg)$ .

Например, используя этот синтаксический анализатор :

 $html = file_get_html('http://example.foo.org/bar.html'); foreach ($html->find('img') as $img) { if (preg_match ("\.(jpeg|jpg)$", $img->src) { //save $img or $img->src or whatever you need } } 

Изменить: Я сократил регулярное выражение. Вы также можете использовать \.jpe?g$ .

Пытаться:

 $regex = '/<img[^>]*'.'src=[\"|\'](.*[.]jpg)[\"|\']/Ui'; 

вы должны быть осторожны, чтобы сбежать ' поскольку вы используете его в качестве делителя PHP.

Также поиск файла, который заканчивается на .jpg или jpeg , сделает это.

 $regex = '/<img[^>]*src=["\']([^\'"]*)\.(jpg|jpeg)["\'][^>]*>/Ui'; 

Просто нужно искать .jpg перед заключительными цитатами, которые я считаю

 $regex = '/<img[^>]*'.'src=[\"|\'](.*\.jpg)[\"|\']/Ui'; 

Вы все забыли, что теги могут иметь пробелы между <и img

Поэтому правильное регулярное выражение должно начинаться с /<\s*img