QRegularExpressionValidator Class
QRegularExpressionValidator 클래스는 정규식에 대해 문자열을 검사하는 데 사용됩니다. 더 보기...
Header: | #include <QRegularExpressionValidator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
상속합니다: | QValidator |
속성
- regularExpression : QRegularExpression
공용 함수
QRegularExpressionValidator(QObject *parent = nullptr) | |
QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr) | |
virtual | ~QRegularExpressionValidator() |
QRegularExpression | regularExpression() const |
재구현된 공용 함수
virtual QValidator::State | validate(QString &input, int &pos) const override |
공용 슬롯
void | setRegularExpression(const QRegularExpression &re) |
신호
void | regularExpressionChanged(const QRegularExpression &re) |
상세 설명
QRegularExpressionValidator는 정규식(regexp)을 사용하여 입력 문자열이 Acceptable, Intermediate, 또는 Invalid 인지 여부를 결정합니다. regexp는 QRegularExpressionValidator가 생성될 때 제공되거나 나중에 제공될 수 있습니다.
정규식이 문자열과 부분적으로 일치하는 경우 결과는 Intermediate 으로 간주됩니다. 예를 들어 "" 및 "A"는 정규식 [A-Z][0-9] 의 경우 Intermediate 이지만 "_"는 Invalid 이 됩니다.
즉, 항상 정확히 일치하도록 시도합니다. 즉, 정규식을 \\A
및 \\z
앵커로 자동 래핑합니다.
사용 예시:
// 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);
아래에는 유효성 검사기의 몇 가지 예가 나와 있습니다. 실제로는 위 예시에서와 같이 위젯과 연결되는 것이 일반적입니다.
// 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
QRegularExpression, QIntValidator, QDoubleValidator 를참조하세요 .
속성 문서
regularExpression : QRegularExpression
이 속성에는 유효성 검사에 사용되는 정규식이 저장됩니다.
기본적으로 이 속성에는 빈 패턴이 있는 정규식(따라서 모든 문자열과 일치)이 포함되어 있습니다.
함수에 액세스합니다:
QRegularExpression | regularExpression() const |
void | setRegularExpression(const QRegularExpression &re) |
알림 신호:
void | regularExpressionChanged(const QRegularExpression &re) |
멤버 함수 문서
[explicit]
QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)
빈 문자열을 포함한 모든 문자열을 유효한 것으로 허용하는 parent 객체를 사용하여 유효성 검사기를 구축합니다.
[explicit]
QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
정규식 re 과 일치하는 모든 문자열을 허용하는 parent 객체를 사용하여 유효성 검사기를 구축합니다.
[virtual noexcept]
QRegularExpressionValidator::~QRegularExpressionValidator()
유효성 검사기를 삭제합니다.
[override virtual]
QValidator::State QRegularExpressionValidator::validate(QString &input, int &pos) const
재구현합니다: QValidator::validate(QString &input, int &pos) const.
input 이 이 유효성 검사기의 정규식과 일치하면 Acceptable, 부분적으로 일치하면 Intermediate, (즉, 유효한 문자를 추가하면 유효한 일치가 될 수 있음) input 일치하지 않으면 Invalid 을 반환합니다.
input 가 일치하지 않는 경우 pos 매개변수는 input 매개변수의 길이로 설정되며, 그렇지 않은 경우 수정되지 않습니다.
예를 들어 정규식이 \w\d\d (단어-문자, 숫자, 숫자)인 경우 "A57"은 Acceptable, "E5"는 Intermediate, "+9"는 Invalid 입니다.
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.