web-dev-qa-db-ja.com

qtの文字列から部分文字列を取得するにはどうすればよいですか?

私はテキストフォームを持っています:

Last Name:SomeName, Day:23 ...etc

Last Name:SomeNameから、Last Nameを取得し、SomeNameを個別に取得したいと思います。

QRegularExpressionを使おうとしましたが、

QRegularExpression re("(?<label>\\w+):(?<text>\\w+)");

しかし、私は結果を得ています:

QString label = match.captured("label") //it gives me only Name

私が欲しいのは、「:」がラベルになり、その後がテキストになるまでのテキストです。

何か案は?

7
amol01

必要に応じて、これには2つの異なる方法を使用できます。

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

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

ビルドして実行

qmake && (n)make

出力

"Last Name" "SomeName"
9
lpapp