Я загружаю веб-страницу, и я пытаюсь извлечь из нее некоторые значения.Извлечь значение href из строки html с помощью QRegExp
Места страницы, что я заинтересован в АРЕ этого типа:
<a data-track=\"something\" href=\"someurl\" title=\"Heaven\"><img src=\"somesource.jpg\" /></a>
и мне нужно извлечь значение HREF (someurl). Обратите внимание, что есть несколько записей, подобных приведенным выше в строке HTML, которые у меня есть, и поэтому я буду использовать список для хранения всех URL-адресов, которые я извлекаю из строки.
Это то, что я пытался до сих пор:
QString html_str=myfile();
QRegExp regex("<a data-track\\=\"something\" href\\=\".*(?=\" title)");
if(regex.indexIn(html_str) != -1){
QStringList list;
QString str;
list = regex.capturedTexts();
foreach(str,list)
qDebug() << str.remove("<a data-track=\"something\" href=\"");
}
С выше кода я получаю только одно вхождение (list.count() == 1
), который содержит весь HTML строку из первого вхождения someurl
до конца файл, без <a data-track="something" href=""
в нем, которые были удалены.
HTTP : //stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
Используйте 'QtWebKit'. Не анализируйте html с помощью регулярных выражений. –