Das erste Element der Liste QRegExp::capturedTexts()
ist die gesamte übereinstimmende Zeichenfolge.
The doc sagt:
QStringList QRegExp::capturedTexts() const
Gibt eine Liste der erfassten Textstrings.
Die erste Zeichenfolge in der Liste ist die gesamte übereinstimmende Zeichenfolge. Jedes nachfolgende Listenelement enthält eine Zeichenfolge, die einem (erfassenden) Teilausdruck des regulären Ausdrucks entsprach.
Ein weiteres Beispiel:
QString s = "abcd123";
QRegExp re("(ab).*(12)");
qDebug() << "indexIn:" << re.indexIn(s);
qDebug() << "captureCount:" << re.captureCount();
qDebug() << "capturedTexts:" << re.capturedTexts();
ausgegeben:
QString strExp="Sum(2+3)-Sum(5+3)";
QRegExp regexp("(Sum\\([^)]*\\))");
regexp.indexIn(strExp);
QStringList list;
int pos = 0;
while ((pos = regexp.indexIn(strExp, pos)) != -1) {
list << regexp.cap(1);
pos += regexp.matchedLength();
}
qDebug() << "all matches:" << list;
Ausgabe::
indexIn: 0
captureCount: 2
capturedTexts: ("abcd12", "ab", "12")
Wenn Sie alle Spiele erhalten möchten, können Sie diese verwenden
all matches: ("Sum(2+3)", "Sum(5+3)")
in meinem Beispiel, wie kann extrahiert werden diese Arten von in Qt –
* diese Arten von Ausdrücken –
Ich verstehe Ihre Frage nicht. – hank