QRegularExpressionValidator Class
Die Klasse QRegularExpressionValidator wird verwendet, um eine Zeichenkette gegen einen regulären Ausdruck zu prüfen. Mehr...
Kopfzeile: | #include <QRegularExpressionValidator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbungen: | QValidator |
Eigenschaften
- regularExpression : QRegularExpression
Öffentliche Funktionen
QRegularExpressionValidator(QObject *parent = nullptr) | |
QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr) | |
virtual | ~QRegularExpressionValidator() |
QRegularExpression | regularExpression() const |
Reimplementierte öffentliche Funktionen
virtual QValidator::State | validate(QString &input, int &pos) const override |
Öffentliche Slots
void | setRegularExpression(const QRegularExpression &re) |
Signale
void | regularExpressionChanged(const QRegularExpression &re) |
Detaillierte Beschreibung
QRegularExpressionValidator verwendet einen regulären Ausdruck (regexp), um festzustellen, ob eine Eingabezeichenkette Acceptable, Intermediate oder Invalid ist. Der regexp kann entweder bei der Erstellung des QRegularExpressionValidator oder zu einem späteren Zeitpunkt übergeben werden.
Wenn die Regexp teilweise mit der Zeichenkette übereinstimmt, wird das Ergebnis als Intermediate betrachtet. Zum Beispiel sind "" und "A" Intermediate für die Regexp [A-Z][0-9] (während "_" Invalid wäre).
QRegularExpressionValidator umschließt den regulären Ausdruck automatisch in den Ankern \\A
und \\z
; mit anderen Worten, es wird immer versucht, eine exakte Übereinstimmung zu erzielen.
Beispiel für die Verwendung:
// 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);
Im Folgenden stellen wir einige Beispiele für Validatoren vor. In der Praxis werden sie normalerweise mit einem Widget verbunden, wie im obigen Beispiel.
// 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
Siehe auch QRegularExpression, QIntValidator, und QDoubleValidator.
Dokumentation der Eigenschaft
regularExpression : QRegularExpression
Diese Eigenschaft enthält den für die Validierung verwendeten regulären Ausdruck
Standardmäßig enthält diese Eigenschaft einen regulären Ausdruck mit einem leeren Muster (der daher auf eine beliebige Zeichenfolge passt).
Zugriffsfunktionen:
QRegularExpression | regularExpression() const |
void | setRegularExpression(const QRegularExpression &re) |
Benachrichtigungssignal:
void | regularExpressionChanged(const QRegularExpression &re) |
Dokumentation der Mitgliedsfunktionen
[explicit]
QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)
Konstruiert einen Validator mit einem parent Objekt, das jeden String (auch einen leeren) als gültig akzeptiert.
[explicit]
QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
Konstruiert einen Validator mit einem parent Objekt, das alle Zeichenketten akzeptiert, die mit dem regulären Ausdruck re übereinstimmen.
[virtual noexcept]
QRegularExpressionValidator::~QRegularExpressionValidator()
Zerstört den Validator.
[override virtual]
QValidator::State QRegularExpressionValidator::validate(QString &input, int &pos) const
Reimplements: QValidator::validate(QString &input, int &pos) const.
Gibt Acceptable zurück, wenn input mit dem regulären Ausdruck für diesen Validator übereinstimmt, Intermediate, wenn er teilweise übereinstimmt (d.h. eine gültige Übereinstimmung sein könnte, wenn zusätzliche gültige Zeichen hinzugefügt werden), und Invalid, wenn input nicht übereinstimmt.
Falls input nicht übereinstimmt, wird der Parameter pos auf die Länge des Parameters input gesetzt; andernfalls wird er nicht geändert.
Lautet der reguläre Ausdruck beispielsweise \w\d\d (Wort-Zeichen-Ziffer-Ziffer), dann ist "A57" Acceptable, "E5" ist Intermediate und "+9" ist Invalid.
Siehe auch QRegularExpression::match().
© 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.