Я загружаю веб-страницу и пытаюсь извлечь из нее некоторые значения.
Места страницы, которые меня интересуют, относятся к этому типу:
<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=""
в нем, которые все были удалены.