Sur cette page

QRegularExpressionValidator Class

La classe QRegularExpressionValidator est utilisée pour vérifier une chaîne de caractères par rapport à une expression régulière. Plus d'informations...

En-tête : #include <QRegularExpressionValidator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Héritages : QValidator

Propriétés

Fonctions publiques

QRegularExpressionValidator(QObject *parent = nullptr)
QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
virtual ~QRegularExpressionValidator()
QRegularExpression regularExpression() const

Fonctions publiques réimplémentées

virtual QValidator::State validate(QString &input, int &pos) const override

Emplacements publics

void setRegularExpression(const QRegularExpression &re)

Signaux

void regularExpressionChanged(const QRegularExpression &re)

Description détaillée

QRegularExpressionValidator utilise une expression régulière (regexp) pour déterminer si une chaîne d'entrée est Acceptable, Intermediate, ou Invalid. La regexp peut être fournie lors de la construction de QRegularExpressionValidator ou ultérieurement.

Si la regexp correspond partiellement à la chaîne, le résultat est considéré comme Intermediate. Par exemple, "" et "A" sont Intermediate pour la regexp [A-Z][0-9] (alors que "_" serait Invalid).

QRegularExpressionValidator enveloppe automatiquement l'expression régulière dans les ancres \\A et \\z; en d'autres termes, il tente toujours d'effectuer une correspondance exacte.

Exemples d'utilisation :

// regexp: optional '-' followed by between 1 and 3 digits
QRegularExpression rx("-?\\d{1,3}");
QValidator *validator = new QRegularExpressionValidator(rx, this);

QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);

Nous présentons ci-dessous quelques exemples de validateurs. Dans la pratique, ils sont normalement associés à un widget, comme dans l'exemple ci-dessus.

// integers 1 to 9999
QRegularExpression re("[1-9]\\d{0,3}");
// the validator treats the regexp as "^[1-9]\\d{0,3}$"
QRegularExpressionValidator v(re, 0);
QString s;
int pos = 0;

s = "0";     v.validate(s, pos);    // returns Invalid
s = "12345"; v.validate(s, pos);    // returns Invalid
s = "1";     v.validate(s, pos);    // returns Acceptable

re.setPattern("\\S+");            // one or more non-whitespace characters
v.setRegularExpression(re);
s = "myfile.txt";  v.validate(s, pos); // Returns Acceptable
s = "my file.txt"; v.validate(s, pos); // Returns Invalid

// A, B or C followed by exactly five digits followed by W, X, Y or Z
re.setPattern("[A-C]\\d{5}[W-Z]");
v.setRegularExpression(re);
s = "a12345Z"; v.validate(s, pos);        // Returns Invalid
s = "A12345Z"; v.validate(s, pos);        // Returns Acceptable
s = "B12";     v.validate(s, pos);        // Returns Intermediate

// match most 'readme' files
re.setPattern("read\\S?me(\\.(txt|asc|1st))?");
re.setPatternOptions(QRegularExpression::CaseInsensitiveOption);
v.setRegularExpression(re);
s = "readme";      v.validate(s, pos); // Returns Acceptable
s = "README.1ST";  v.validate(s, pos); // Returns Acceptable
s = "read me.txt"; v.validate(s, pos); // Returns Invalid
s = "readm";       v.validate(s, pos); // Returns Intermediate

Voir également QRegularExpression, QIntValidator, et QDoubleValidator.

Documentation sur les propriétés

regularExpression : QRegularExpression

Cette propriété contient l'expression régulière utilisée pour la validation

Par défaut, cette propriété contient une expression régulière avec un motif vide (qui correspond donc à n'importe quelle chaîne).

Fonctions d'accès :

QRegularExpression regularExpression() const
void setRegularExpression(const QRegularExpression &re)

Signal du notificateur :

void regularExpressionChanged(const QRegularExpression &re)

Fonction membre Documentation

[explicit] QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)

Construit un validateur avec un objet parent qui accepte n'importe quelle chaîne (y compris une chaîne vide) comme valide.

[explicit] QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)

Construit un validateur avec un objet parent qui accepte toutes les chaînes de caractères qui correspondent à l'expression régulière re.

[virtual noexcept] QRegularExpressionValidator::~QRegularExpressionValidator()

Détruit le validateur.

[override virtual] QValidator::State QRegularExpressionValidator::validate(QString &input, int &pos) const

Réimplémente : QValidator::validate(QString &input, int &pos) const.

Renvoie Acceptable si input correspond à l'expression régulière de ce validateur, Intermediate si la correspondance est partielle (c'est-à-dire qu'elle pourrait être valide si des caractères valides supplémentaires étaient ajoutés), et Invalid si input ne correspond pas.

Si input ne correspond pas, le paramètre pos est fixé à la longueur du paramètre input; sinon, il n'est pas modifié.

Par exemple, si l'expression régulière est \w\d\d (mot-caractère, chiffre, chiffre), "A57" correspond à Acceptable, "E5" à Intermediate et "+9" à Invalid.

Voir aussi QRegularExpression::match().

© 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.