Qt如何将超链接提取到变量中

时间:2015-11-17 19:18:58

标签: string qt text hyperlink

以此为例:

QMessageBox::warning(this, tr("test"), tr("click <a href='http://example.com'>mock</a>"));

我想要的是提取&#34; http://example.com&#34;到一个变量,所以我可以在其他消息框中重用它。另外,如果我需要更改它,我可以轻松管理这个变量,而不是更改所有字符串。

1 个答案:

答案 0 :(得分:1)

回答有类似但不准确的问题:How to use regex to replace URLs with an HTML link in Qt?我从该页面获取了正则表达式并应用于您的案例:

QString urlStr = "<a href='http://example.com'>mock</a>";
QRegExp rx("((?:https?|ftp)://\\S+)");
int pos = rx.indexIn(urlStr, 0);
if (-1 != pos)
{
    QString cap = rx.cap(0);
    cap = cap.left(cap.indexOf('\''));
    qDebug() << cap; // see the result
}

当然,模式可以改进。