C++ Qt - {bracket}之间的QString remove()正则表达式

y2k*_*y2k 2 c++ qstring qt qregexp qtcore

我尝试了以下正则表达式来删除括号之间的{anything}(希望括号本身)!

    mystr.remove(QRegExp("\\{(.*?)\\}"));
    mystr.remove(QRegExp("\{(.*?)\}"));
Run Code Online (Sandbox Code Playgroud)

什么都没有删除

lpa*_*app 7

.*?是无效的.请尝试以下代码:

main.cpp中

#include <QString>
#include <QDebug>
#include <QRegExp>

int main()
{
    QString mystr = "te{foo}st";
    qDebug() << mystr.remove(QRegExp("\\{(.*)\\}"));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

汇编

这可能不是您需要运行的确切命令,因此请尝试调整特定方案的概念.

g++ -I/usr/include/qt/QtCore -I/usr/include/qt -fPIC -lQt5Core main.cpp && ./a.out
Run Code Online (Sandbox Code Playgroud)

输出: "test"