본문 바로가기

프로그래밍/시스템

C++ Qt 정규식

반응형

http://doc.qt.io/qt-5/qregexp.html

Qt에서 정규식을 사용하려면 다음과 같은 헤더파일이 필요합니다.

 

1
#include <qregexp.h>
cs


 

 

 

▶ 예제1 - 첫 번째 문자가 숫자인지 검사

 

1
2
3
4
5
6
7
 QRegExpValidator validator(QRegExp("\\d"),0);
     QString text = "7";
    int pos = 0;
    if ( validator.validate(text,pos) == validator.Acceptable )
    {
        qDebug() << "The first character is a number";
    }
cs

 

QValidator는 입력 텍스트의 유효성을 검사하고 ,

정규식에 대응하는 패턴에 따라서 다음과 같은 상태값을 반환합니다.

 

enum QRegExpValidator :: State

Constant Value Description
QValidator::Invalid 0

문자열이 유효하지 않습니다.

QValidator::Intermediate 1 문자열이 부분적으로 일치합니다.
QValidator::Acceptable 2

문자열이 유효합니다.

 

validate로 pos(커서위치)에 해당하는 text가 유효한지 검사합니다.

 

 

▶ 예제2 - 주어진 문자열이 ip인지 검사

 

1
2
3
4
5
6
7
8
9
// ipregex 0.0.0.0 ~ 255.255.255.255 사이의 유효한 값
// QRegExp rx("(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])");
 
// ipregex 0~255 사이의 유효한 값
QRegExp rx("(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])");
QRegExpValidator *validator = new QRegExpValidator(rx,this);
 
ui->IpEdit1->setValidator(validator); ui->IpEdit2->setValidator(validator);
ui->IpEdit3->setValidator(validator); ui->IpEdit4->setValidator(validator);
cs


LineEdit에 정규식을 적용시켜서 특정 패턴을 가진 문자만 입력할 수 있도록 설정합니다.

반응형

'프로그래밍 > 시스템' 카테고리의 다른 글

C++ Qt 다이얼로그 데이터 전송  (0) 2018.03.15
C++ Qt 메시지박스  (0) 2018.03.15
C++ Qt 파일 입출력 , 파일 변화 감지  (0) 2018.03.12
C++ Qt TreeWidget  (0) 2018.03.12
C++ Qt 간단한 로그인 폼 만들기  (0) 2018.03.12