QRegularExpressionMatchIterator Class
Die Klasse QRegularExpressionMatchIterator stellt einen Iterator für die Ergebnisse einer globalen Übereinstimmung eines QRegularExpression Objekts mit einer Zeichenkette bereit. Mehr...
Kopfzeile: | #include <QRegularExpressionMatchIterator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QRegularExpressionMatchIterator ist Teil von Implicitly Shared Classes und Classes for String Data.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
QRegularExpressionMatchIterator() | |
QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator) | |
(since 6.1) | QRegularExpressionMatchIterator(QRegularExpressionMatchIterator &&iterator) |
~QRegularExpressionMatchIterator() | |
bool | hasNext() const |
bool | isValid() const |
QRegularExpression::MatchOptions | matchOptions() const |
QRegularExpression::MatchType | matchType() const |
QRegularExpressionMatch | next() |
QRegularExpressionMatch | peekNext() const |
QRegularExpression | regularExpression() const |
void | swap(QRegularExpressionMatchIterator &other) |
QRegularExpressionMatchIterator & | operator=(QRegularExpressionMatchIterator &&iterator) |
QRegularExpressionMatchIterator & | operator=(const QRegularExpressionMatchIterator &iterator) |
Detaillierte Beschreibung
Ein QRegularExpressionMatchIterator-Objekt ist ein vorwärtsgerichteter Java-ähnlicher Iterator; er kann durch Aufruf der Funktion QRegularExpression::globalMatch() erhalten werden. Ein neuer QRegularExpressionMatchIterator wird vor dem ersten Ergebnis positioniert. Sie können dann die Funktion hasNext() aufrufen, um zu prüfen, ob weitere Ergebnisse verfügbar sind; wenn ja, gibt die Funktion next() das nächste Ergebnis zurück und schaltet den Iterator weiter.
Jedes Ergebnis ist ein QRegularExpressionMatch Objekt, das alle Informationen zu diesem Ergebnis enthält (einschließlich der erfassten Teilzeichenfolgen).
Zum Beispiel:
// extracts the words QRegularExpression re("(\\w+)"); QString subject("the quick fox"); QRegularExpressionMatchIterator i = re.globalMatch(subject); while (i.hasNext()) { QRegularExpressionMatch match = i.next(); // ... }
Darüber hinaus bietet QRegularExpressionMatchIterator eine peekNext()-Funktion, um das nächste Ergebnis zu erhalten , ohne den Iterator voranzutreiben.
Ab Qt 6.0 ist es auch möglich, das Ergebnis von QRegularExpression::globalMatch einfach in einer bereichsbasierten for-Schleife zu verwenden, zum Beispiel so:
// using a raw string literal, R"(raw_characters)", to be able to use "\w" // without having to escape the backslash as "\\w" QRegularExpression re(R"(\w+)"); QString subject("the quick fox"); for (const QRegularExpressionMatch &match : re.globalMatch(subject)) { // ... }
Sie können das QRegularExpression Objekt, mit dem die Betreffzeichenkette 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 QRegularExpression.
Siehe auch QRegularExpression und QRegularExpressionMatch.
Dokumentation der Mitgliedsfunktionen
QRegularExpressionMatchIterator::QRegularExpressionMatchIterator()
Konstruiert ein leeres, gültiges QRegularExpressionMatchIterator-Objekt. Der reguläre Ausdruck wird auf einen standardmäßig konstruierten Ausdruck gesetzt, der Übereinstimmungstyp auf QRegularExpression::NoMatch und die Übereinstimmungsoptionen auf QRegularExpression::NoMatchOption.
Der Aufruf der Memberfunktion hasNext() für das konstruierte Objekt gibt false zurück, da der Iterator nicht auf einer gültigen Folge von Übereinstimmungen iteriert.
QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator)
Konstruiert ein QRegularExpressionMatchIterator-Objekt als Kopie von iterator.
Siehe auch operator=().
[noexcept, since 6.1]
QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(QRegularExpressionMatchIterator &&iterator)
Konstruiert ein QRegularExpressionMatchIterator-Objekt durch Verschieben von iterator.
Beachten Sie, dass ein verschobener QRegularExpressionMatchIterator nur zerstört oder zugewiesen werden kann. Die Auswirkung 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]
QRegularExpressionMatchIterator::~QRegularExpressionMatchIterator()
Zerstört das Objekt QRegularExpressionMatchIterator.
bool QRegularExpressionMatchIterator::hasNext() const
Gibt true
zurück, wenn mindestens ein Trefferergebnis vor dem Iterator liegt; andernfalls wird false
zurückgegeben.
Siehe auch next().
bool QRegularExpressionMatchIterator::isValid() const
Gibt true
zurück, wenn das Iterator-Objekt als Ergebnis der Funktion QRegularExpression::globalMatch() 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::globalMatch() und QRegularExpression::isValid().
QRegularExpression::MatchOptions QRegularExpressionMatchIterator::matchOptions() const
Gibt die Übereinstimmungsoptionen zurück, die verwendet wurden, um dieses QRegularExpressionMatchIterator Objekt zu erhalten, d.h. die Übereinstimmungsoptionen, die an QRegularExpression::globalMatch() übergeben wurden.
Siehe auch QRegularExpression::globalMatch(), regularExpression(), und matchType().
QRegularExpression::MatchType QRegularExpressionMatchIterator::matchType() const
Gibt den Übereinstimmungstyp zurück, der verwendet wurde, um dieses QRegularExpressionMatchIterator Objekt zu erhalten, d.h. den Übereinstimmungstyp, der an QRegularExpression::globalMatch() übergeben wurde.
Siehe auch QRegularExpression::globalMatch(), regularExpression(), und matchOptions().
QRegularExpressionMatch QRegularExpressionMatchIterator::next()
Gibt das nächste Trefferergebnis zurück und rückt den Iterator um eine Position vor.
Hinweis: Der Aufruf dieser Funktion, wenn sich der Iterator am Ende der Ergebnismenge befindet, führt zu undefinierten Ergebnissen.
QRegularExpressionMatch QRegularExpressionMatchIterator::peekNext() const
Gibt das nächste Trefferergebnis zurück, ohne den Iterator zu verschieben.
Hinweis: Der Aufruf dieser Funktion, wenn sich der Iterator am Ende der Ergebnismenge befindet, führt zu undefinierten Ergebnissen.
QRegularExpression QRegularExpressionMatchIterator::regularExpression() const
Gibt das Objekt QRegularExpression zurück, dessen Funktion globalMatch() dieses Objekt zurückgegeben hat.
Siehe auch QRegularExpression::globalMatch(), matchType(), und matchOptions().
[noexcept]
void QRegularExpressionMatchIterator::swap(QRegularExpressionMatchIterator &other)
Tauscht diesen Iterator mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
[noexcept]
QRegularExpressionMatchIterator &QRegularExpressionMatchIterator::operator=(QRegularExpressionMatchIterator &&iterator)
Move-zuweist das iterator diesem Objekt zu und gibt einen Verweis auf das Ergebnis zurück.
Beachten Sie, dass ein verschobenes QRegularExpressionMatchIterator nur zerstört oder zugewiesen werden kann. Die Auswirkungen des Aufrufs anderer Funktionen als des Destruktors oder eines der Zuweisungsoperatoren sind undefiniert.
QRegularExpressionMatchIterator &QRegularExpressionMatchIterator::operator=(const QRegularExpressionMatchIterator &iterator)
Weist diesem Objekt den Iterator iterator zu und gibt eine Referenz auf die Kopie zurück.
© 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.