I have a text form:
Last Name:SomeName, Day:23 ...etc
From Last Name:SomeName, I would like to get Last Name, and separately SomeName.
I have tried to use QRegularExpression,
QRegularExpression re("(?<label>\\w+):(?<text>\\w+)");
But I am getting the result:
QString label = match.captured("label") //it gives me only Name
What I want is whatever text till ":" to be label, and after to be text.
Any ideas?
If you do not need to modify the substring, then you can use QStringRef . The QStringRef class is a read only wrapper around an existing QString that references a substring within the existing string. This gives much better performance than creating a new QString object to contain the sub-string.
QString stores unicode strings. By definition, since QString stores unicode, a QString knows what characters it's contents represent. This is in contrast to a C-style string (char*) that has no knowledge of encoding by itself.
Initializing a String. One way to initialize a QString is simply to pass a const char * to its constructor.
Try this: double d1 = 0.5,d2 = 30.0 QString str = "abc"; str. append(QString("%1"). arg(d1)); str.
You could use two different methods for this, based on your need:
#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;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && (n)make
"Last Name" "SomeName"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With