Sur cette page

QRegularExpressionValidator Class

La classe `QRegularExpressionValidator` permet de vérifier la conformité d'une chaîne de caractères à une expression régulière. En savoir plus...

En-tête : #include <QRegularExpressionValidator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite de : 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

Slots 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 de caractères est Acceptable, Intermediate ou Invalid. L'expression régulière peut être fournie soit lors de la création de QRegularExpressionValidator, soit ultérieurement.

Si l'expression régulière correspond partiellement à la chaîne, le résultat est considéré comme « Intermediate ». Par exemple, « » et « A » sont « Intermediate » pour l'expression régulière [A-Z][0-9] (alors que « _ » serait « Invalid »).

QRegularExpressionValidator encadre automatiquement l’expression régulière entre les ancres « \\A » et « \\z » ; en d’autres termes, il tente toujours d’effectuer une correspondance exacte.

Exemple 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. En pratique, ils sont généralement 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 de caractères).

Fonctions d'accès :

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

Signal de notification :

void regularExpressionChanged(const QRegularExpression &re)

Documentation des fonctions membres

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

Crée un validateur à partir d'un objet ` parent ` qui considère toute chaîne de caractères (y compris une chaîne vide) comme valide.

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

Crée un validateur à partir d'un objet ` parent ` qui accepte toutes les chaînes de caractères correspondant à l'expression régulière re.

[virtual noexcept] QRegularExpressionValidator::~QRegularExpressionValidator()

Supprime 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 ` s’il y a une correspondance partielle (c’est-à-dire que la correspondance pourrait être valide si des caractères valides supplémentaires étaient ajoutés), et ` Invalid ` si ` input ` ne correspond pas.

Si l’ input n’est pas validée, le paramètre pos est défini sur la longueur du paramètre input; dans le cas contraire, il n’est pas modifié.

Par exemple, si l’expression régulière est \w\d\d (caractère alphabétique, chiffre, chiffre), alors « A57 » correspond à Acceptable, « E5 » à Intermediate et « +9 » à Invalid.

Voir également 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.