我有一个问题,我有一个RegEx,[^ / \& \?] +。\ w {3,4}(?=([\?&]。* $ | $)),但是我无法使用下面[1]中的函数。
[1] - http://doc.qt.io/qt-5/qregexp.html
这是我尝试过的代码:
QRegExp rx("[^/\\\\&\\?]+\\.\\w{3,4}(?=([\\?&].*$|$))", Qt::CaseInsensitive, QRegExp::RegExp);
std::ostringstream list;
int pos = 0;
while ((pos = rx.indexIn(url, pos)) != -1) {
list << rx.cap(1).toStdString();
pos += rx.matchedLength();
}
return list;
它应该从URL中提取文件名,但只返回任何内容。我不确定出了什么问题。有人可以提供帮助吗?提前谢谢。
答案 0 :(得分:5)
Qt有QUrl
类用于解析URL等。还有QUrl::fileName方法:
QUrl url("http://qt-project.org/support/file.html");
// url.adjusted(RemoveFilename) == "http://qt-project.org/support/"
// url.fileName() == "file.html"