QRegularExpressionValidator Class
QRegularExpressionValidator 클래스는 문자열이 정규 표현식을 충족하는지 확인하는 데 사용됩니다. 더 보기...
| 헤더: | #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 에 해당하는지 여부를 판단합니다. 정규식은 QRegularExpressionValidator를 생성할 때 또는 나중에 지정할 수 있습니다.
정규 표현식이 문자열과 부분적으로 일치하는 경우, 그 결과는 Intermediate 로 간주됩니다. 예를 들어, 정규 표현식 [A-Z][0-9] 의 경우 ""와 "A"는 Intermediate 에 해당하지만("_"는 Invalid 에 해당합니다).
QRegularExpressionValidator는 정규식을 자동으로 \\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 IntermediateQRegularExpression, 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()도 참조하십시오 .
© 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.