QRegularExpressionMatch Class
La classe QRegularExpressionMatch fournit les résultats d'une correspondance entre QRegularExpression et une chaîne de caractères. Plus d'informations...
| En-tête : | #include <QRegularExpressionMatch> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QRegularExpressionMatch fait partie de Implicitly Shared Classes et de Classes for string data.
Remarque : Toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| 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) |
Non-membres apparentés
| QDebug | operator<<(QDebug debug, const QRegularExpressionMatch &match) |
Description détaillée
Un objet QRegularExpressionMatch peut être obtenu en appelant la fonction QRegularExpression::match(), ou en tant que résultat unique d'une correspondance globale à partir d'un site QRegularExpressionMatchIterator.
Le succès ou l'échec d'une tentative de correspondance peut être vérifié en appelant la fonction hasMatch(). QRegularExpressionMatch signale également une correspondance partielle réussie par l'intermédiaire de la fonction hasPartialMatch().
En outre, QRegularExpressionMatch renvoie les sous-chaînes capturées par les groupes de capture dans la chaîne de motifs. Le groupe de capture implicite d'indice 0 capture le résultat de la correspondance complète. La fonction captured() renvoie chaque sous-chaîne capturée, soit par l'index du groupe de capture, soit par son nom :
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" }
Pour chaque sous-chaîne capturée, il est possible d'interroger ses positions de début et de fin dans la chaîne du sujet en appelant respectivement les fonctions capturedStart() et capturedEnd(). La longueur de chaque sous-chaîne capturée est disponible en utilisant la fonction capturedLength().
La fonction de commodité capturedTexts() renvoie toutes les sous-chaînes capturées en une seule fois (y compris la sous-chaîne correspondant à l'ensemble du motif) dans l'ordre dans lequel elles ont été capturées par les groupes de capture, c'est-à-dire captured(i) == capturedTexts().at(i).
Vous pouvez récupérer l'objet QRegularExpression auquel la chaîne sujet a été comparée en appelant la fonction regularExpression() ; le type de correspondance et les options de correspondance sont également disponibles en appelant respectivement la fonction matchType() et la fonction matchOptions().
Veuillez vous référer à la documentation QRegularExpression pour plus d'informations sur les classes d'expressions régulières de Qt.
Voir également QRegularExpression.
Documentation des fonctions membres
QRegularExpressionMatch::QRegularExpressionMatch()
Construit un objet QRegularExpressionMatch valide et vide. L'expression régulière est définie sur une expression construite par défaut, le type de correspondance sur QRegularExpression::NoMatch et les options de correspondance sur QRegularExpression::NoMatchOption.
L'objet ne signale aucune correspondance par l'intermédiaire des fonctions membres hasMatch() et hasPartialMatch().
QRegularExpressionMatch::QRegularExpressionMatch(const QRegularExpressionMatch &match)
Construit un résultat de correspondance en copiant le résultat de match.
Voir aussi operator=().
[constexpr noexcept, since 6.1] QRegularExpressionMatch::QRegularExpressionMatch(QRegularExpressionMatch &&match)
Construit un résultat de correspondance en déplaçant le résultat à partir de l'adresse match.
Notez qu'un QRegularExpressionMatch déplacé ne peut être que détruit ou assigné. L'effet de l'appel à d'autres fonctions que le destructeur ou l'un des opérateurs d'affectation n'est pas défini.
Cette fonction a été introduite dans Qt 6.1.
Voir aussi operator=().
[noexcept] QRegularExpressionMatch::~QRegularExpressionMatch()
Détruit le résultat du match.
QString QRegularExpressionMatch::captured(QAnyStringView name) const
Renvoie la sous-chaîne capturée par le groupe de capture nommé name.
Si le groupe de capture nommé name n'a pas capturé de chaîne, ou s'il n'y a pas de groupe de capture nommé name, renvoie une valeur nulle QString.
Remarque : dans les versions de Qt antérieures à la version 6.8, cette fonction prenait QString ou QStringView, et non QAnyStringView.
Voir aussi capturedView(), capturedStart(), capturedEnd(), capturedLength() et QString::isNull().
QString QRegularExpressionMatch::captured(int nth = 0) const
Renvoie la sous-chaîne capturée par le groupe de capture nth.
Si le groupe de capture nth n'a pas capturé de chaîne, ou s'il n'existe pas de groupe de capture, il renvoie une valeur nulle QString.
Remarque : le groupe de capture implicite numéro 0 capture la sous-chaîne correspondant à l'ensemble du motif.
Voir aussi capturedView(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength() et QString::isNull().
qsizetype QRegularExpressionMatch::capturedEnd(QAnyStringView name) const
Renvoie le décalage à l'intérieur de la chaîne objet immédiatement après la position finale de la sous-chaîne capturée par le groupe de capture nommé name. Si le groupe de capture nommé name n'a pas capturé de chaîne ou n'existe pas, la fonction renvoie -1.
Remarque : Dans les versions de Qt XML antérieures à la version 6.8, cette fonction prenait QString ou QStringView, et non QAnyStringView.
Voir aussi capturedStart(), capturedLength(), et captured().
qsizetype QRegularExpressionMatch::capturedEnd(int nth = 0) const
Renvoie le décalage à l'intérieur de la chaîne du sujet immédiatement après la position finale de la sous-chaîne capturée par le groupe de capture nth. Si le groupe de capture nth n'a pas capturé de chaîne ou n'existe pas, renvoie -1.
Voir aussi capturedStart(), capturedLength(), et captured().
qsizetype QRegularExpressionMatch::capturedLength(QAnyStringView name) const
Renvoie la longueur de la sous-chaîne capturée par le groupe de capture nommé name.
Note : Cette fonction renvoie 0 si le groupe de capture nommé name n'a pas capturé de chaîne ou n'existe pas.
Remarque : Dans les versions de Qt XML antérieures à la version 6.8, cette fonction prenait QString ou QStringView, et non QAnyStringView.
Voir aussi capturedStart(), capturedEnd() et captured().
qsizetype QRegularExpressionMatch::capturedLength(int nth = 0) const
Renvoie la longueur de la sous-chaîne capturée par le groupe de capture nth.
Remarque : cette fonction renvoie 0 si le groupe de capture nth n'a pas capturé de chaîne ou n'existe pas.
Voir aussi capturedStart(), capturedEnd() et captured().
qsizetype QRegularExpressionMatch::capturedStart(QAnyStringView name) const
Renvoie le décalage à l'intérieur de la chaîne objet correspondant à la position de départ de la sous-chaîne capturée par le groupe de capture nommé name. Si le groupe de capture nommé name n'a pas capturé de chaîne ou n'existe pas, la fonction renvoie -1.
Remarque : Dans les versions de Qt XML antérieures à la version 6.8, cette fonction prenait QString ou QStringView, et non QAnyStringView.
Voir aussi capturedEnd(), capturedLength(), et captured().
qsizetype QRegularExpressionMatch::capturedStart(int nth = 0) const
Renvoie le décalage dans la chaîne du sujet correspondant à la position de départ de la sous-chaîne capturée par le groupe de capture nth. Si le groupe de capture nth n'a pas capturé de chaîne ou n'existe pas, renvoie -1.
Voir aussi capturedEnd(), capturedLength() et captured().
QStringList QRegularExpressionMatch::capturedTexts() const
Renvoie une liste de toutes les chaînes capturées par les groupes de capture, dans l'ordre dans lequel les groupes apparaissent dans la chaîne du motif. La liste comprend le groupe de capture implicite numéro 0, qui capture la sous-chaîne correspondant à l'ensemble du motif.
QStringView QRegularExpressionMatch::capturedView(QAnyStringView name) const
Renvoie une vue de la chaîne capturée par le groupe de capture nommé name.
Si le groupe de capture nommé name n'a pas capturé de chaîne, ou s'il n'y a pas de groupe de capture nommé name, elle renvoie une valeur nulle QStringView.
Remarque : Dans les versions de Qt antérieures à la version 6.8, cette fonction prenait QString ou QStringView, et non QAnyStringView.
Voir aussi captured(), capturedStart(), capturedEnd(), capturedLength() et QStringView::isNull().
QStringView QRegularExpressionMatch::capturedView(int nth = 0) const
Renvoie une vue de la sous-chaîne capturée par le groupe de capture nth.
Si le groupe de capture nth n'a pas capturé de chaîne, ou s'il n'existe pas de groupe de capture, il renvoie une valeur nulle QStringView.
Remarque : le groupe de capture implicite numéro 0 capture la sous-chaîne correspondant à l'ensemble du motif.
Voir aussi captured(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength() et QStringView::isNull().
[since 6.3] bool QRegularExpressionMatch::hasCaptured(QAnyStringView name) const
Retourne true si le groupe de capture nommé name a capturé quelque chose dans la chaîne du sujet, et false sinon (ou s'il n'y a pas de groupe de capture appelé name).
Remarque : certains groupes de capture d'une expression régulière peuvent n'avoir rien capturé même si l'expression régulière correspond. Cela peut se produire, par exemple, si un opérateur conditionnel est utilisé dans le motif :
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 }
De même, un groupe de capture peut capturer une sous-chaîne de longueur 0 ; cette fonction renverra true pour un tel groupe de capture.
Remarque : dans les versions de Qt XML antérieures à la version 6.8, cette fonction prenait QString ou QStringView, et non QAnyStringView.
Cette fonction a été introduite dans Qt 6.3.
Voir aussi captured() et hasMatch().
[since 6.3] bool QRegularExpressionMatch::hasCaptured(int nth) const
Retourne true si le groupe de capture nth a capturé quelque chose dans la chaîne de l'objet, et false sinon (ou s'il n'y a pas de groupe de capture).
Remarque : le groupe de capture implicite numéro 0 capture la sous-chaîne correspondant à l'ensemble du motif.
Remarque : certains groupes de capture d'une expression régulière peuvent n'avoir rien capturé même si l'expression régulière correspond. Cela peut se produire, par exemple, si un opérateur conditionnel est utilisé dans le motif :
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 }
De même, un groupe de capture peut capturer une sous-chaîne de longueur 0 ; cette fonction renverra true pour un tel groupe de capture.
Cette fonction a été introduite dans Qt 6.3.
Voir aussi captured(), lastCapturedIndex(), et hasMatch().
bool QRegularExpressionMatch::hasMatch() const
Renvoie true si l'expression régulière correspond à la chaîne du sujet, ou false dans le cas contraire.
Voir aussi QRegularExpression::match() et hasPartialMatch().
bool QRegularExpressionMatch::hasPartialMatch() const
Renvoie true si l'expression régulière correspond partiellement à la chaîne de l'objet, ou false dans le cas contraire.
Remarque : seule une correspondance qui utilise explicitement l'un des types de correspondance partielle peut produire une correspondance partielle. Néanmoins, si une telle correspondance est totalement réussie, cette fonction renverra false, alors que hasMatch() renverra true.
Voir aussi QRegularExpression::match(), QRegularExpression::MatchType, et hasMatch().
bool QRegularExpressionMatch::isValid() const
Renvoie true si l'objet de correspondance a été obtenu par la fonction QRegularExpression::match() invoquée sur un objet QRegularExpression valide ; renvoie false si l'objet QRegularExpression n'est pas valide.
Voir aussi QRegularExpression::match() et QRegularExpression::isValid().
int QRegularExpressionMatch::lastCapturedIndex() const
Renvoie l'index du dernier groupe de capture qui a capturé quelque chose, y compris le groupe de capture implicite 0. Cela peut être utilisé pour extraire toutes les sous-chaînes qui ont été capturées :
QRegularExpressionMatch match = re.match(string); for (int i = 0; i <= match.lastCapturedIndex(); ++i) { QString captured = match.captured(i); // ... }
Notez que certains des groupes de capture dont l'index est inférieur à lastCapturedIndex() peuvent ne pas avoir été trouvés, et donc n'avoir rien capturé.
Si l'expression régulière ne correspond pas, cette fonction renvoie -1.
Voir aussi hasCaptured(), captured(), capturedStart(), capturedEnd() et capturedLength().
QRegularExpression::MatchOptions QRegularExpressionMatch::matchOptions() const
Renvoie les options de correspondance qui ont été utilisées pour obtenir cet objet QRegularExpressionMatch, c'est-à-dire les options de correspondance qui ont été transmises à QRegularExpression::match() ou QRegularExpression::globalMatch().
Voir aussi QRegularExpression::match(), regularExpression() et matchType().
QRegularExpression::MatchType QRegularExpressionMatch::matchType() const
Renvoie le type de correspondance utilisé pour obtenir cet objet QRegularExpressionMatch, c'est-à-dire le type de correspondance transmis à QRegularExpression::match() ou QRegularExpression::globalMatch().
Voir aussi QRegularExpression::match(), regularExpression() et matchOptions().
QRegularExpression QRegularExpressionMatch::regularExpression() const
Renvoie l'objet QRegularExpression dont la fonction match() a renvoyé cet objet.
Voir aussi QRegularExpression::match(), matchType(), et matchOptions().
[noexcept] void QRegularExpressionMatch::swap(QRegularExpressionMatch &other)
Remplace ce résultat par other. Cette opération est très rapide et n'échoue jamais.
[noexcept] QRegularExpressionMatch &QRegularExpressionMatch::operator=(QRegularExpressionMatch &&match)
Move-assigne le résultat de la correspondance match à cet objet et renvoie une référence au résultat.
Notez qu'un objet déplacé de QRegularExpressionMatch ne peut être détruit ou affecté qu'à cet objet. L'effet de l'appel à d'autres fonctions que le destructeur ou l'un des opérateurs d'affectation n'est pas défini.
QRegularExpressionMatch &QRegularExpressionMatch::operator=(const QRegularExpressionMatch &match)
Affecte le résultat de la correspondance match à cet objet et renvoie une référence à la copie.
Non-membres apparentés
QDebug operator<<(QDebug debug, const QRegularExpressionMatch &match)
Écrit l'objet de correspondance match dans l'objet de débogage debug à des fins de débogage.
Voir aussi Techniques de débogage.
© 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.