Regex PHP удаляет определенное ключевое слово

После просмотра некоторых ответов на stackoverflow,

preg_match_all('/<img[^>]+>/i',$html, $result);
$img = array();
foreach( $result[0] as $img_tag)
{
    preg_match_all('/(title)=("[^"]*")/i',$img_tag, $img[$img_tag]);
}

//print_r($img);
foreach ($img as $imgg)
 echo $imgg[2][0];

Вышеупомянутый код находит img заголовок, но однако он возвращается как "Waterfall fountain" вместо Waterfall fountain, уведомление там "

что я должен добавить в regex для удаления "?

Спасибо

0
задан Gordon 29 July 2010 в 14:28
поделиться

6 ответов

переместите кавычки за пределы скобок

preg_match_all('/(title)="([^"]*)"/i',$img_tag, $img[$img_tag]); 
1
ответ дан 4 September 2019 в 00:48
поделиться

Используйте синтаксический анализатор XML и этот XPath, чтобы получить все заголовки элементов img:

//img/@title

Пример с DOM

$dom = new DOMDocument;
$dom->loadHML($html);
$xp = new DOMXPath($dom);
foreach($xp->query('//img/@title') as $attribute) {
    echo $attribute->nodeValue;
}

Дополнительные материалы для чтения:

1
ответ дан 4 September 2019 в 00:48
поделиться

Сейчас вы делаете " частью запоминаемого соответствия. Вы можете поставить кавычки вне скобки:

preg_match_all('/(title)="([^"]*)"/i',$img_tag, $img[$img_tag]);
0
ответ дан 4 September 2019 в 00:48
поделиться

Просто переместите " из группы захвата:

'/(title)="([^"]*)"/i'
3
ответ дан 4 September 2019 в 00:48
поделиться

Скобки в регулярном выражении образуют группу захвата, которая определяет, что будет сохраняться в $ img [$ img_tag] . Ваша группа включала цитаты: ("[^"] * ") . Если вам не нужны кавычки, просто переместите их за пределы группы: " ([^ "] *)"

0
ответ дан 4 September 2019 в 00:48
поделиться

Переместите кавычки за скобки.

Проверьте это:

preg_match_all('/(title)="([^"]*)"/i',$img_tag, $img[$img_tag]); 
1
ответ дан 4 September 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: