Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从字符串获取图像URL_C++_Regex_Qt_Qregexp - Fatal编程技术网

C++ 从字符串获取图像URL

C++ 从字符串获取图像URL,c++,regex,qt,qregexp,C++,Regex,Qt,Qregexp,我正在试图找到一种从网页源获取图像url的方法。 我可以将网页源代码转换成一个字符串,然后逐行解析它,找到带有URL的行。 然而,我还没有找到一个好方法来从行中提取URL。 我认为这可以用QRegExp来完成,但是我一直不知道如何使用它 我试图解析的行 <img width="980" height="1515" id="mainImg" src="//test/123.jpg" alt="test"> 最终工作代码 void MainWindow::on_btnDownload_

我正在试图找到一种从网页源获取图像url的方法。 我可以将网页源代码转换成一个字符串,然后逐行解析它,找到带有URL的行。 然而,我还没有找到一个好方法来从行中提取URL。 我认为这可以用QRegExp来完成,但是我一直不知道如何使用它

我试图解析的行

<img width="980" height="1515" id="mainImg" src="//test/123.jpg" alt="test">
最终工作代码

void MainWindow::on_btnDownload_clicked()
{
QString url = "http://test.foo.com";

QUrl qURL = url;

QNetworkAccessManager manager;
QNetworkReply *response = manager.get(QNetworkRequest(QUrl(url)));
QEventLoop event;
connect(response,SIGNAL(finished()),&event,SLOT(quit()));
event.exec();
QString html = response->readAll();
QStringList str;
str = html.split("\n");
//qDebug() << url;

for (int i = 0; i < str.size(); ++i){
    if(str.at(i).contains("id=\"mainImg\"", Qt::CaseInsensitive)){
        QString pic;
        pic = str.at(i);
        pic = pic.remove(QRegExp("<img[^>]*src=['|\"]",  Qt::CaseInsensitive));
        pic = pic.remove(QString::fromStdString("//"), Qt::CaseInsensitive);
        pic = pic.remove('"');
        pic = pic.remove("'");
        pic = pic.remove('<');
        pic = pic.remove('>');
        pic = pic.remove(';');
        pic = pic.left(pic.length()-1);
        //qDebug() << str.at(i);
        qDebug() << pic;
    }
}


qDebug() << "Lines: " << str.size();
}

你考虑过QtWebKit吗?它能够访问单个DOM元素及其属性。请尝试:您能在问题中包含您试图解析的特定行吗?@Talon06 Brandon的解决方案与您提供的行配合使用。你能发布更多的代码吗?打印你找到的实际行,以防它与你显示的不完全一样;例如,额外的空间将使显示的模式失败。