정규식

- 정해진 패턴을 사용해서 일치하는 데이터 검색을 지원하는 표현식 


정규식을 이용해서 특수문자를 제거 또는 지정한 특수문자를 사용할 수 있습니다.

그리고 Regex클래스를 이용한다. using System.Text.RegularExpressions; 네임스페이스 필요


< 정규 표현식에 사용되는 특수 문자 >

1. '.' (점)

 - 임의의 한 문자를 의미합니다.

ex) f. c -> fac, fbc, frc ...

     . fc -> afc, bfc, rfc ...


2. '*'

 - 바로 앞의 문자가 없거나 하나 이상인 경우

ex) f*c  -> c, fc, fcc, fffc ...

    fps* -> fp, fps, fpss, fpsss ...


3. '+'

 - 바로 앞의 문자가 하나 이상인 경우

ex) f+c -> fc, ffc, fffc ...


4. '?'

 - 바로 앞의 문자가 없거나 하나뿐인 경우

ex) fp?s -> s, fps 두가지 표현이 유일


5. '^'

 - 바로 뒤에 문자열로 시작

ex) ^The... 뒷부분부터 공백까지 검사. -> The girl is, Theather

^.e -> he, me, request, settle ...


6. '$'

 - 바로 앞의 문자열로 종료

ex) a?bc$ -> eeabe, seebc, bc ...

+.e$ -> onthetoe, bctae, appetittle ... 


7. '[ ]'

 - [ ] 안에 있는 문자 중 하나( 범위의 경우 '-'로 지정합니다. )

ex) [ab]cd -> acd, bcd ...

     [ a-z ] -> 알파벳 소문자

     [a-zA-Z] -> 알파벳 소문자, 대문자

     [0-9] -> 숫자

    ^[a-zA-Z] 영문자로 시작

    ^[가-힣] 한글로 시작

     [^a-zA-Z0-9가-힣] 알파벳, 숫자, 힣 사이에 문자가 아닌게 있는지 확인


[Regex 클래스 적용]



아이디 등록시 특수문자가 불가능해야되기 때문에 체크를 해줘야 한다.



특수문자가 있는지 확인하기 위해서 string 정규식을 이용하여 특수문자를 뺀 문자를 받는다.

string idChecker = Regex.Replace(USER_ID.Text, @"[ ^0-9a-zA-Z가-힣 ]{1,10}", "", RegexOptions.Singleline);


그리고 원래의 string과 비교 후 다르면 에러메시지창을 띄운다.

if( USER_ID.Text.Equals(idChecker) == false )

{

USER_ID.Text.Remove( 0, USER_ID.Text.Length );

USER_ID.Text = "";

DXMessageBox.Show("특수문자, 공백은 허용되지 않습니다..");

}



아이디에 지정한 특수문자(&)를 넣고 싶은 경우에는 \&를 추가하면 된다.

string idChecker = Regex.Replace(USER_ID.Text, @"[ ^0-9a-zA-Z가-힣\& ]{1,10}", ""RegexOptions.Singleline);


'Programing > C#' 카테고리의 다른 글

[DevExpress] XtraMessageBox DialogResult Settings  (0) 2018.10.04
Datetime, DatetimePicker을 string으로 변환  (0) 2018.10.01
[DevExpress] WinForm WaitIndicator  (0) 2018.09.05
set, get 접근자  (0) 2018.06.29
할당문과 변수초기화  (0) 2018.06.29

+ Recent posts