QRegularExpressionMatch Class
Die Klasse „QRegularExpressionMatch“ liefert die Ergebnisse eines Abgleichs eines „ QRegularExpression “ mit einer Zeichenkette. Mehr...
| Header: | #include <QRegularExpressionMatch> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QRegularExpressionMatch gehört zu den implizit gemeinsam genutzten Klassen und den Klassen für Zeichenkettendaten.
Hinweis: Alle Funktionen 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) |
Verwandte Nicht-Mitglieder
| QDebug | operator<<(QDebug debug, const QRegularExpressionMatch &match) |
Ausführliche Beschreibung
Ein QRegularExpressionMatch-Objekt kann durch Aufruf der Funktion „ QRegularExpression::match()“ oder als einzelnes Ergebnis einer globalen Übereinstimmung aus einem „ QRegularExpressionMatchIterator “ abgerufen werden.
Der Erfolg oder Misserfolg eines Abgleichversuchs kann durch den Aufruf der Funktion ` hasMatch()` überprüft werden. `QRegularExpressionMatch` meldet zudem einen erfolgreichen Teilabgleich über die Funktion ` hasPartialMatch()`.
Darüber hinaus gibt QRegularExpressionMatch die Teilzeichenfolgen zurück, die von den Erfassungsgruppen in der Musterzeichenfolge erfasst wurden. Die implizite Erfassungsgruppe mit dem Index 0 erfasst das Ergebnis des gesamten Abgleichs. Die Funktion ` captured()` gibt jede erfasste Teilzeichenfolge entweder anhand des Index der Erfassungsgruppe oder anhand ihres Namens zurück:
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 Teilzeichenfolge lassen sich deren Start- und End-Offsets in der Zielzeichenfolge abfragen, indem jeweils die Funktionen ` capturedStart()` bzw. ` capturedEnd()` aufgerufen werden. Die Länge jeder erfassten Teilzeichenfolge kann mit der Funktion ` capturedLength()` ermittelt werden.
Die Hilfsfunktion ` capturedTexts()` gibt alle erfassten Teilzeichenfolgen auf einmal zurück (einschließlich der Teilzeichenfolge, die mit dem gesamten Muster übereinstimmt), und zwar in der Reihenfolge, in der sie von den Erfassungsgruppen erfasst wurden; das heißt: ` captured(i) == capturedTexts().at(i)`.
Sie können das ` QRegularExpression `-Objekt, mit dem die Zielzeichenfolge abgeglichen wurde, durch Aufruf der Funktion ` regularExpression()` abrufen; der Übereinstimmungstyp und die Übereinstimmungsoptionen sind ebenfalls durch Aufruf von ` matchType()` bzw. ` matchOptions()` verfügbar.
Weitere Informationen zu den Qt-Klassen für reguläre Ausdrücke finden Sie in der Dokumentation zu ` QRegularExpression `.
Siehe auch QRegularExpression.
Dokumentation zu den Member-Funktionen
QRegularExpressionMatch::QRegularExpressionMatch()
Erstellt ein gültiges, leeres `QRegularExpressionMatch`-Objekt. Der reguläre Ausdruck wird auf einen standardmäßig generierten Ausdruck gesetzt; der Übereinstimmungstyp auf ` QRegularExpression::NoMatch ` und die Übereinstimmungsoptionen auf ` QRegularExpression::NoMatchOption`.
Das Objekt meldet über die Memberfunktionen ` hasMatch()` und ` hasPartialMatch()` keine Übereinstimmung.
QRegularExpressionMatch::QRegularExpressionMatch(const QRegularExpressionMatch &match)
Erstellt ein Abgleichergebnis, indem das Ergebnis der angegebenen Funktion ` match` kopiert wird.
Siehe auch ` operator=()`.
[constexpr noexcept default, since 6.1] QRegularExpressionMatch::QRegularExpressionMatch(QRegularExpressionMatch &&match)
Erstellt ein Übereinstimmungsergebnis, indem das Ergebnis aus dem angegebenen ` match` verschoben wird.
Beachten Sie, dass ein QRegularExpressionMatch, aus dem Daten verschoben wurden, nur zerstört oder zugewiesen werden kann. Die Auswirkungen des Aufrufs anderer Funktionen als des Destruktors oder eines der Zuweisungsoperatoren sind undefiniert.
Diese Funktion wurde in Qt 6.1 eingeführt.
Siehe auch ` operator=()` ().
[noexcept] QRegularExpressionMatch::~QRegularExpressionMatch()
Löscht das Spielergebnis.
QString QRegularExpressionMatch::captured(QAnyStringView name) const
Gibt die Teilzeichenfolge 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 namens „ name “ gibt, wird ein Null QString zurückgegeben.
Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion „ QString “ oder „ QStringView “ entgegen, nicht „ QAnyStringView “.
Siehe auch capturedView(), capturedStart(), capturedEnd(), capturedLength() und QString::isNull().
QString QRegularExpressionMatch::captured(int nth = 0) const
Gibt die von der Erfassungsgruppe „ nth “ erfasste Teilzeichenfolge zurück.
Wenn die Erfassungsgruppe „ nth “ keine Zeichenkette erfasst hat oder wenn keine solche Erfassungsgruppe vorhanden ist, wird ein Null- QString zurückgegeben.
Hinweis: Die implizite Erfassungsgruppe Nummer 0 erfasst die Teilzeichenfolge, die mit dem gesamten Muster übereinstimmt.
Siehe auch „ capturedView()“, „ lastCapturedIndex()“, „ capturedStart()“, „ capturedEnd()“, „ capturedLength()“ und „ QString::isNull()“.
qsizetype QRegularExpressionMatch::capturedEnd(QAnyStringView name) const
Gibt den Offset innerhalb der Zielzeichenkette 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 “ entgegen, nicht „ QAnyStringView “.
Siehe auch capturedStart(), capturedLength() und captured().
qsizetype QRegularExpressionMatch::capturedEnd(int nth = 0) const
Gibt den Offset innerhalb der Zielzeichenfolge unmittelbar nach der Endposition der Teilzeichenfolge zurück, die von der Erfassungsgruppe „ nth “ erfasst wurde. Wenn die Erfassungsgruppe „ nth “ keine Zeichenfolge 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 Teilzeichenfolge zurück, die von der Erfassungsgruppe „ name “ erfasst wurde.
Hinweis: Diese Funktion gibt 0 zurück, wenn die Erfassungsgruppe mit dem Namen „ name “ keine Zeichenkette erfasst hat oder nicht existiert.
Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion „ QString “ oder „ QStringView “ entgegen, nicht „ QAnyStringView “.
Siehe auch capturedStart(), capturedEnd() und captured().
qsizetype QRegularExpressionMatch::capturedLength(int nth = 0) const
Gibt die Länge der Teilzeichenfolge 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 Zielzeichenkette 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 entgegen, nicht QAnyStringView.
Siehe auch capturedEnd(), capturedLength() und captured().
qsizetype QRegularExpressionMatch::capturedStart(int nth = 0) const
Gibt den Offset innerhalb der Zielzeichenfolge zurück, der der Startposition der Teilzeichenfolge entspricht, die von der Erfassungsgruppe „ nth “ erfasst wurde. Wenn die Erfassungsgruppe „ nth “ keine Zeichenfolge 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 vorkommen. Die Liste enthält die implizite Erfassungsgruppe Nummer 0, die die Teilzeichenfolge 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 Null- QStringView zurückgegeben.
Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion „ QString “ oder „ QStringView “ entgegen, nicht „ QAnyStringView “.
Siehe auch captured(), capturedStart(), capturedEnd(), capturedLength() und QStringView::isNull().
QStringView QRegularExpressionMatch::capturedView(int nth = 0) const
Gibt eine Ansicht der Teilzeichenfolge zurück, die von der Erfassungsgruppe „ nth “ erfasst wurde.
Wenn die Erfassungsgruppe „ nth “ keine Zeichenfolge erfasst hat oder wenn keine solche Erfassungsgruppe vorhanden ist, wird ein Null- QStringView zurückgegeben.
Hinweis: Die implizite Erfassungsgruppe Nummer 0 erfasst die Teilzeichenfolge, die mit dem gesamten Muster übereinstimmt.
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 Zielzeichenfolge erfasst hat, andernfalls „false“ (oder wenn es keine Erfassungsgruppe namens „ name “ gibt).
Hinweis: Es kann vorkommen, dasseinige Erfassungsgruppen in einem regulären Ausdruck nichts erfasst haben, obwohl der reguläre Ausdruck eine Übereinstimmung gefunden hat. Dies kann beispielsweise der Fall sein, wenn im Muster ein bedingter Operator 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
}Ebenso kann eine Erfassungsgruppe eine Teilzeichenfolge 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 “ entgegen, 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 Betreffzeile erfasst hat, andernfalls „false“ (oder wenn keine solche Erfassungsgruppe vorhanden ist).
Hinweis: Die implizite Erfassungsgruppe Nummer 0 erfasst die Teilzeichenfolge, die mit dem gesamten Muster übereinstimmt.
Hinweis: Einige Erfassungsgruppen in einem regulären Ausdruck haben möglicherweise nichts erfasst, selbst wenn der reguläre Ausdruck eine Übereinstimmung gefunden hat. Dies kann beispielsweise passieren, wenn im Muster ein bedingter Operator 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
}Ebenso kann eine Erfassungsgruppe eine Teilzeichenfolge 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 Zielzeichenfolge ü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 Zielzeichenfolge übereinstimmte, andernfalls „false“.
Hinweis: Nur eine Übereinstimmung, bei der explizit einer der Teilübereinstimmungstypen verwendet wurde, kann zu einer Teilübereinstimmung führen. Wenn eine solche Übereinstimmung jedoch vollständig erfolgreich ist, 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 das „ 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 erfassten Teilzeichenfolgen zu extrahieren:
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()` möglicherweise keine Übereinstimmung gefunden und daher nichts erfasst haben.
Wenn der reguläre Ausdruck keine Übereinstimmung gefunden hat, gibt diese Funktion -1 zurück.
Siehe auch hasCaptured(), captured(), capturedStart(), capturedEnd() und capturedLength().
QRegularExpression::MatchOptions QRegularExpressionMatch::matchOptions() const
Gibt die Match-Optionen zurück, die zum Abrufen dieses QRegularExpressionMatch -Objekts verwendet wurden, d. h. die Match-Optionen, die an QRegularExpression::match() oder QRegularExpression::globalMatch() übergeben wurden.
Siehe auch QRegularExpression::match(), regularExpression() und matchType().
QRegularExpression::MatchType QRegularExpressionMatch::matchType() const
Gibt den Match-Typ zurück, der zum Abrufen dieses QRegularExpressionMatch -Objekts verwendet wurde, d. h. den Match-Typ, der an QRegularExpression::match() oder QRegularExpression::globalMatch() übergeben wurde.
Siehe auch QRegularExpression::match(), regularExpression() und matchOptions().
QRegularExpression QRegularExpressionMatch::regularExpression() const
Gibt das „ QRegularExpression “-Objekt zurück, dessen „match()“-Funktion dieses Objekt zurückgegeben hat.
Siehe auch „ QRegularExpression::match()“, „ matchType()“ und „ matchOptions()“.
[noexcept] void QRegularExpressionMatch::swap(QRegularExpressionMatch &other)
Tauscht das Ergebnis dieses Spiels mit „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
[noexcept] QRegularExpressionMatch &QRegularExpressionMatch::operator=(QRegularExpressionMatch &&match)
„move“ weist das Abgleichsergebnis match diesem Objekt zu und gibt eine Referenz auf das Ergebnis zurück.
Beachten Sie, dass ein per „Move-Zuweisung“ übertragener Wert QRegularExpressionMatch nur zerstört oder neu 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 diesem Objekt das Match-Ergebnis „ match “ zu und gibt eine Referenz auf die Kopie zurück.
Verwandte Nicht-Mitglieder
QDebug operator<<(QDebug debug, const QRegularExpressionMatch &match)
Schreibt das Match-Objekt match zu Debugging-Zwecken in das Debug-Objekt debug.
Siehe auch „Debugging-Techniken“.
© 2026 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.