QRegularExpressionMatch Class

Die Klasse QRegularExpressionMatch liefert die Ergebnisse eines Abgleichs von QRegularExpression mit einer Zeichenkette. Mehr...

Kopfzeile: #include <QRegularExpressionMatch>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Funktionen

QRegularExpressionMatch()
QRegularExpressionMatch(const QRegularExpressionMatch &match)
(since 6.1) QRegularExpressionMatch(QRegularExpressionMatch &&match)
~QRegularExpressionMatch()
QString captured(QAnyStringView name) const
QString captured(int nth = 0) const
qsizetype capturedEnd(QAnyStringView name) const
qsizetype capturedEnd(int nth = 0) const
qsizetype capturedLength(QAnyStringView name) const
qsizetype capturedLength(int nth = 0) const
qsizetype capturedStart(QAnyStringView name) const
qsizetype capturedStart(int nth = 0) const
QStringList capturedTexts() const
QStringView capturedView(QAnyStringView name) const
QStringView capturedView(int nth = 0) const
(since 6.3) bool hasCaptured(QAnyStringView name) const
(since 6.3) bool hasCaptured(int nth) const
bool hasMatch() const
bool hasPartialMatch() const
bool isValid() const
int lastCapturedIndex() const
QRegularExpression::MatchOptions matchOptions() const
QRegularExpression::MatchType matchType() const
QRegularExpression regularExpression() const
void swap(QRegularExpressionMatch &other)
QRegularExpressionMatch &operator=(QRegularExpressionMatch &&match)
QRegularExpressionMatch &operator=(const QRegularExpressionMatch &match)
QDebug operator<<(QDebug debug, const QRegularExpressionMatch &match)

Detaillierte Beschreibung

Ein QRegularExpressionMatch-Objekt kann durch den Aufruf der Funktion QRegularExpression::match() oder als einzelnes Ergebnis eines globalen Abgleichs von einer QRegularExpressionMatchIterator erhalten werden.

Der Erfolg oder Misserfolg eines Abgleichsversuchs kann durch den Aufruf der Funktion hasMatch() überprüft werden. QRegularExpressionMatch meldet auch eine erfolgreiche Teilübereinstimmung durch die Funktion hasPartialMatch().

Außerdem gibt QRegularExpressionMatch die Teilzeichenketten zurück, die von den Erfassungsgruppen im Musterstring erfasst wurden. Die implizite Erfassungsgruppe mit Index 0 erfasst das Ergebnis der gesamten Übereinstimmung. Die Funktion captured() gibt jede erfasste Teilzeichenkette zurück, entweder über den Index der Erfassungsgruppe oder über ihren Namen:

QRegularExpression re("(\\d\\d) (?<name>\\w+)");
QRegularExpressionMatch match = re.match("23 Jordan");
if (match.hasMatch()) {
    QString number = match.captured(1); // first == "23"
    QString name = match.captured("name"); // name == "Jordan"
}

Für jede erfasste Teilzeichenkette ist es möglich, ihre Anfangs- und Endabstände in der betreffenden Zeichenkette abzufragen, indem die Funktionen capturedStart() und capturedEnd() aufgerufen werden. Die Länge jeder erfassten Teilzeichenkette ist über die Funktion capturedLength() verfügbar.

Die Komfortfunktion capturedTexts() gibt alle erfassten Teilzeichenketten auf einmal zurück (einschließlich der Teilzeichenkette, die mit dem gesamten Muster übereinstimmt), und zwar in der Reihenfolge, in der sie von Erfassungsgruppen erfasst wurden, d. h. captured(i) == capturedTexts().at(i).

Sie können das Objekt QRegularExpression abrufen, mit dem die betreffende Zeichenkette abgeglichen wurde, indem Sie die Funktion regularExpression() aufrufen; der Übereinstimmungstyp und die Übereinstimmungsoptionen sind ebenfalls verfügbar, indem Sie matchType() bzw. matchOptions() aufrufen.

Weitere Informationen zu den Qt-Klassen für reguläre Ausdrücke finden Sie in der Dokumentation QRegularExpression.

Siehe auch QRegularExpression.

Dokumentation der Mitgliedsfunktionen

QRegularExpressionMatch::QRegularExpressionMatch()

Konstruiert ein gültiges, leeres QRegularExpressionMatch-Objekt. Der reguläre Ausdruck wird auf einen standardmäßig konstruierten Ausdruck gesetzt, der Übereinstimmungstyp auf QRegularExpression::NoMatch und die Übereinstimmungsoptionen auf QRegularExpression::NoMatchOption.

Das Objekt meldet keine Übereinstimmung mit den Mitgliedsfunktionen hasMatch() und hasPartialMatch().

QRegularExpressionMatch::QRegularExpressionMatch(const QRegularExpressionMatch &match)

Konstruiert ein Übereinstimmungsergebnis durch Kopieren des Ergebnisses der angegebenen match.

Siehe auch operator=().

[noexcept, since 6.1] QRegularExpressionMatch::QRegularExpressionMatch(QRegularExpressionMatch &&match)

Konstruiert ein Übereinstimmungsergebnis durch Verschieben des Ergebnisses aus dem angegebenen match.

Man beachte, dass ein QRegularExpressionMatch, dessen Ergebnis verschoben wurde, nur zerstört oder zugewiesen werden kann. Der Effekt des Aufrufs anderer Funktionen als des Destruktors oder eines der Zuweisungsoperatoren ist undefiniert.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch operator=().

[noexcept] QRegularExpressionMatch::~QRegularExpressionMatch()

Zerstört das Spielergebnis.

QString QRegularExpressionMatch::captured(QAnyStringView name) const

Gibt die Teilzeichenkette zurück, die von der Erfassungsgruppe mit dem Namen name erfasst wurde.

Wenn die benannte Erfassungsgruppe name keine Zeichenkette erfasst hat, oder wenn es keine Erfassungsgruppe mit dem Namen name gibt, wird QString als Null zurückgegeben.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QString oder QStringView, nicht QAnyStringView.

Siehe auch capturedView(), capturedStart(), capturedEnd(), capturedLength(), und QString::isNull().

QString QRegularExpressionMatch::captured(int nth = 0) const

Gibt die Teilzeichenkette zurück, die von der Erfassungsgruppe nth erfasst wurde.

Wenn die Erfassungsgruppe nth keine Zeichenkette erfasst hat oder wenn es keine solche Erfassungsgruppe gibt, wird null QString zurückgegeben.

Hinweis: Die implizite Erfassungsgruppe mit der Nummer 0 erfasst die Teilzeichenkette, auf die das gesamte Muster passt.

Siehe auch capturedView(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength(), und QString::isNull().

qsizetype QRegularExpressionMatch::capturedEnd(QAnyStringView name) const

Gibt den Offset innerhalb der Betreffzeichenkette unmittelbar nach der Endposition der Teilzeichenkette zurück, die von der Erfassungsgruppe mit dem Namen name erfasst wurde. Wenn die Erfassungsgruppe mit dem Namen name keine Zeichenkette erfasst hat oder nicht existiert, wird -1 zurückgegeben.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QString oder QStringView, nicht QAnyStringView.

Siehe auch capturedStart(), capturedLength(), und captured().

qsizetype QRegularExpressionMatch::capturedEnd(int nth = 0) const

Gibt den Offset innerhalb der Betreffzeichenkette unmittelbar nach der Endposition der Teilzeichenkette zurück, die von der Erfassungsgruppe nth erfasst wurde. Wenn die Erfassungsgruppe nth keine Zeichenkette erfasst hat oder nicht existiert, wird -1 zurückgegeben.

Siehe auch capturedStart(), capturedLength(), und captured().

qsizetype QRegularExpressionMatch::capturedLength(QAnyStringView name) const

Gibt die Länge der Teilzeichenkette zurück, die von der Erfassungsgruppe mit dem Namen name erfasst wurde.

Hinweis: Diese Funktion gibt 0 zurück, wenn die Erfassungsgruppe mit dem Namen name keinen String erfasst hat oder nicht existiert.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QString oder QStringView, nicht QAnyStringView.

Siehe auch capturedStart(), capturedEnd(), und captured().

qsizetype QRegularExpressionMatch::capturedLength(int nth = 0) const

Gibt die Länge der Teilzeichenkette zurück, die von der Erfassungsgruppe nth erfasst wurde.

Hinweis: Diese Funktion gibt 0 zurück, wenn die Erfassungsgruppe nth keine Zeichenkette erfasst hat oder nicht existiert.

Siehe auch capturedStart(), capturedEnd(), und captured().

qsizetype QRegularExpressionMatch::capturedStart(QAnyStringView name) const

Gibt den Offset innerhalb der Betreffzeichenkette zurück, der der Startposition der Teilzeichenkette entspricht, die von der Erfassungsgruppe mit dem Namen name erfasst wurde. Wenn die Erfassungsgruppe mit dem Namen name keine Zeichenkette erfasst hat oder nicht existiert, wird -1 zurückgegeben.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QString oder QStringView, nicht QAnyStringView.

Siehe auch capturedEnd(), capturedLength(), und captured().

qsizetype QRegularExpressionMatch::capturedStart(int nth = 0) const

Gibt den Offset innerhalb der Betreffzeichenkette zurück, der der Anfangsposition der Teilzeichenkette entspricht, die von der Erfassungsgruppe nth erfasst wurde. Wenn die Erfassungsgruppe nth keine Zeichenkette erfasst hat oder nicht existiert, wird -1 zurückgegeben.

Siehe auch capturedEnd(), capturedLength(), und captured().

QStringList QRegularExpressionMatch::capturedTexts() const

Gibt eine Liste aller von Erfassungsgruppen erfassten Zeichenfolgen zurück, und zwar in der Reihenfolge, in der die Gruppen selbst in der Musterzeichenfolge erscheinen. Die Liste enthält die implizite Erfassungsgruppe Nummer 0, die die Teilzeichenkette erfasst, auf die das gesamte Muster passt.

QStringView QRegularExpressionMatch::capturedView(QAnyStringView name) const

Gibt eine Ansicht der Zeichenkette zurück, die von der Erfassungsgruppe mit dem Namen name erfasst wurde.

Wenn die benannte Erfassungsgruppe name keine Zeichenkette erfasst hat, oder wenn es keine Erfassungsgruppe mit dem Namen name gibt, wird ein Nullwert QStringView zurückgegeben.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QString oder QStringView, nicht QAnyStringView.

Siehe auch captured(), capturedStart(), capturedEnd(), capturedLength(), und QStringView::isNull().

QStringView QRegularExpressionMatch::capturedView(int nth = 0) const

Gibt eine Ansicht der Teilzeichenkette zurück, die von der Erfassungsgruppe nth erfasst wurde.

Wenn die Erfassungsgruppe nth keine Zeichenkette erfasst hat oder wenn es keine solche Erfassungsgruppe gibt, wird null QStringView zurückgegeben.

Hinweis: Die implizite Erfassungsgruppe mit der Nummer 0 erfasst die Teilzeichenkette, auf die das gesamte Muster passt.

Siehe auch captured(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength(), und QStringView::isNull().

[since 6.3] bool QRegularExpressionMatch::hasCaptured(QAnyStringView name) const

Gibt true zurück, wenn die Erfassungsgruppe mit dem Namen name etwas in der Betreff-Zeichenkette erfasst hat, und false andernfalls (oder wenn es keine Erfassungsgruppe namens name gibt).

Hinweis: Einige Erfassungsgruppen in einem regulären Ausdruck haben möglicherweise nichts erfasst, selbst wenn der reguläre Ausdruck übereinstimmt. Dies kann zum Beispiel der Fall sein, wenn ein Bedingungsoperator im Muster verwendet wird:

QRegularExpression re("([a-z]+)|([A-Z]+)");QRegularExpressionMatch m = re.match("UPPERCASE");if (m.hasMatch()) {    qDebug() << m.hasCaptured(0); // true
    qDebug() << m.hasCaptured(1); // false
    qDebug() << m.hasCaptured(2); // true
}

In ähnlicher Weise kann eine Erfassungsgruppe eine Teilzeichenkette der Länge 0 erfassen; diese Funktion gibt für eine solche Erfassungsgruppe true zurück.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QString oder QStringView und nicht QAnyStringView.

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch captured() und hasMatch().

[since 6.3] bool QRegularExpressionMatch::hasCaptured(int nth) const

Gibt true zurück, wenn die Erfassungsgruppe nth etwas in der Betreffzeichenkette erfasst hat, und false andernfalls (oder wenn es keine solche Erfassungsgruppe gibt).

Hinweis: Die implizite Erfassungsgruppe Nummer 0 erfasst die Teilzeichenkette, auf die das gesamte Muster passt.

Hinweis: Einige Erfassungsgruppen in einem regulären Ausdruck haben möglicherweise nichts erfasst, selbst wenn der reguläre Ausdruck übereinstimmt. Dies kann z. B. der Fall sein, wenn ein Bedingungsoperator im Muster verwendet wird:

QRegularExpression re("([a-z]+)|([A-Z]+)");QRegularExpressionMatch m = re.match("UPPERCASE");if (m.hasMatch()) {    qDebug() << m.hasCaptured(0); // true
    qDebug() << m.hasCaptured(1); // false
    qDebug() << m.hasCaptured(2); // true
}

In ähnlicher Weise kann eine Erfassungsgruppe eine Teilzeichenkette der Länge 0 erfassen; diese Funktion gibt für eine solche Erfassungsgruppe true zurück.

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch captured(), lastCapturedIndex(), und hasMatch().

bool QRegularExpressionMatch::hasMatch() const

Gibt true zurück, wenn der reguläre Ausdruck mit der Betreffzeichenkette übereinstimmt, andernfalls false.

Siehe auch QRegularExpression::match() und hasPartialMatch().

bool QRegularExpressionMatch::hasPartialMatch() const

Gibt true zurück, wenn der reguläre Ausdruck teilweise mit der betreffenden Zeichenfolge übereinstimmt, andernfalls false.

Hinweis: Nur eine Übereinstimmung, die explizit einen der partiellen Übereinstimmungstypen verwendet, kann eine teilweise Übereinstimmung ergeben. Wenn eine solche Übereinstimmung dennoch vollständig gelingt, gibt diese Funktion false zurück, während hasMatch() true zurückgibt.

Siehe auch QRegularExpression::match(), QRegularExpression::MatchType, und hasMatch().

bool QRegularExpressionMatch::isValid() const

Gibt true zurück, wenn das Match-Objekt als Ergebnis der Funktion QRegularExpression::match() erhalten wurde, die für ein gültiges QRegularExpression -Objekt aufgerufen wurde; gibt false zurück, wenn die Funktion QRegularExpression ungültig war.

Siehe auch QRegularExpression::match() und QRegularExpression::isValid().

int QRegularExpressionMatch::lastCapturedIndex() const

Gibt den Index der letzten Erfassungsgruppe zurück, die etwas erfasst hat, einschließlich der impliziten Erfassungsgruppe 0. Dies kann verwendet werden, um alle Teilzeichenfolgen zu extrahieren, die erfasst wurden:

QRegularExpressionMatch match = re.match(string);
for (int i = 0; i <= match.lastCapturedIndex(); ++i) {
    QString captured = match.captured(i);
    // ...
}

Beachten Sie, dass einige der Erfassungsgruppen mit einem Index kleiner als lastCapturedIndex() nicht übereinstimmen könnten und daher nichts erfasst haben.

Wenn der reguläre Ausdruck nicht übereinstimmt, gibt diese Funktion -1 zurück.

Siehe auch hasCaptured(), captured(), capturedStart(), capturedEnd(), und capturedLength().

QRegularExpression::MatchOptions QRegularExpressionMatch::matchOptions() const

Gibt die Übereinstimmungsoptionen zurück, die verwendet wurden, um dieses QRegularExpressionMatch Objekt zu erhalten, d.h. die Übereinstimmungsoptionen, die an QRegularExpression::match() oder QRegularExpression::globalMatch() übergeben wurden.

Siehe auch QRegularExpression::match(), regularExpression(), und matchType().

QRegularExpression::MatchType QRegularExpressionMatch::matchType() const

Gibt den Übereinstimmungstyp zurück, der verwendet wurde, um dieses QRegularExpressionMatch Objekt zu erhalten, d.h. den Übereinstimmungstyp, der an QRegularExpression::match() oder QRegularExpression::globalMatch() übergeben wurde.

Siehe auch QRegularExpression::match(), regularExpression(), und matchOptions().

QRegularExpression QRegularExpressionMatch::regularExpression() const

Gibt das Objekt QRegularExpression zurück, dessen Funktion match() dieses Objekt zurückgegeben hat.

Siehe auch QRegularExpression::match(), matchType(), und matchOptions().

[noexcept] void QRegularExpressionMatch::swap(QRegularExpressionMatch &other)

Tauscht dieses Ergebnis mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.

[noexcept] QRegularExpressionMatch &QRegularExpressionMatch::operator=(QRegularExpressionMatch &&match)

Verschieben - weist das Ergebnis der Übereinstimmung match diesem Objekt zu und gibt einen Verweis auf das Ergebnis zurück.

Beachten Sie, dass ein moved-from QRegularExpressionMatch nur zerstört oder zugewiesen werden kann. Die Auswirkungen des Aufrufs anderer Funktionen als des Destruktors oder eines der Zuweisungsoperatoren sind undefiniert.

QRegularExpressionMatch &QRegularExpressionMatch::operator=(const QRegularExpressionMatch &match)

Weist das Abgleichsergebnis match diesem Objekt zu und gibt einen Verweis auf die Kopie zurück.

Verwandte Nicht-Mitglieder

QDebug operator<<(QDebug debug, const QRegularExpressionMatch &match)

Schreibt das Match-Objekt match in das Debug-Objekt debug zu Debugging-Zwecken.

Siehe auch Debugging-Techniken.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.