我试图摆脱括号和QString中这些括号中包含的单词。请你帮助我好吗?

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

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


对于此示例,我试图获取仅以下名称的函数名称:MainWindow

我无法解决:

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

最佳答案

要获取函数名称,可以使用以下命令(如果函数名称是字符串中的第一个标识符):

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();
}

关于c++ - 如何在QString中摆脱括号及其内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37116682/

10-08 22:29