如何摆脱QString中的括号和内容?

时间:2016-05-09 13:10:06

标签: c++ qt split qstring

我试图在QString中删除括号和这些括号中包含的单词。你能帮我吗?

var1.at(0) = " MainWindow(QWidget *parent) : ";

QStringList var2 = var1.at(0).split(QRegExp("\("), QString::SkipEmptyParts);

对于此示例,我试图获取仅为MainWindow

的函数名称

我无法通过以下方式解决问题:

QRegExp("(");
QRegExp("\(");
QRegExp("\\(");
QRegExp("\((");

1 个答案:

答案 0 :(得分:1)

要获取函数名称,如果函数名称是字符串中的第一个标识符,则可以使用以下内容:

QString s("  MainWindow(QWidget *parent) : ");
QRegExp e("(\\w+)");
if( e.indexIn(s) != -1 ) {
    qDebug() << e.cap(1); // MainWindow
}

如果你想要全部收到'(',你可以使用:

QString s("  MainWindow(QWidget *parent) : ");
QRegExp e("([^(]+)");
if( e.indexIn(s) != -1 ) {
    qDebug() << e.cap(1).trim();
}