以此为例:
QMessageBox::warning(this, tr("test"), tr("click <a href='http://example.com'>mock</a>"));
我想要的是提取&#34; http://example.com&#34;到一个变量,所以我可以在其他消息框中重用它。另外,如果我需要更改它,我可以轻松管理这个变量,而不是更改所有字符串。
答案 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
}
当然,模式可以改进。