如何从qt中的字符串中获取子字符串?

amo*_*l01 7 c++ regex qstring qt qregularexpression

我有一个文本表格:

Last Name:SomeName, Day:23 ...etc
Run Code Online (Sandbox Code Playgroud)

从姓氏:SomeName,我想获得姓氏,并单独SomeName.

我试过使用QRegularExpression,

QRegularExpression re("(?<label>\\w+):(?<text>\\w+)");
Run Code Online (Sandbox Code Playgroud)

但我得到了结果:

QString label = match.captured("label") //it gives me only Name
Run Code Online (Sandbox Code Playgroud)

我想要的是任何文字,直到":"为标签,然后是文本.

有任何想法吗?

lpa*_*app 9

根据您的需要,您可以使用两种不同的方法:

main.cpp中

#include <QString>
#include <QDebug>

int main()
{
    QString myString = "Last Name:SomeName, Day:23";
    QStringList myStringList = myString.split(',').first().split(':');
    qDebug() << myStringList.first() << myStringList.last();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
Run Code Online (Sandbox Code Playgroud)

构建并运行

qmake && (n)make
Run Code Online (Sandbox Code Playgroud)

产量

"Last Name" "SomeName"
Run Code Online (Sandbox Code Playgroud)