정규식

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


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

그리고 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

WinForm WaitIndicator 추가방법


추가할 프로젝트 우클릭 -> Add DevExpress Item -> New Item -> Progress Indicator 추가



[ MouseClick_Event ] 부분에 추가


UserLookAndFeel.Default.SetSkinStyle("Office 2013 Dark Gray");// 사용할 디자인(여러가지 스타일이 있음 속성확인후 적용)

SplashScreenManager.ShowForm(null, typeof(Frm_WaitForm), true, true, false);   // 스크린출력    

SplashScreenManager.Default.SetWaitFormCaption("잠시기다려주세요...");   // 출력되는 메시지 입력

SplashScreenManager.CloseForm();  // 출력해제



기타 배경색, 폰트크기, 폰트컬러등등 속성에서 변경가능 

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

Datetime, DatetimePicker을 string으로 변환  (0) 2018.10.01
아이디 등록시 특수문자 체크  (0) 2018.09.18
set, get 접근자  (0) 2018.06.29
할당문과 변수초기화  (0) 2018.06.29
상수(Constant)  (0) 2018.06.28

WaitIndicator 적용방법



[ WaitIndicator.xaml ]

xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core
dx:ThemeManager.ThemeName="LightGray" >     //Wait 디자인 변경

    <dx:WaitIndicator Content="Loading..." DeferedVisibility="True">  
            <dx:WaitIndicator.ContentTemplate> 
                <DataTemplate> 
                    <StackPanel Orientation="Vertical"> 
                        <TextBlock FontSize="17" Text="잠시만 기다려주십시오." /> 
                        <TextBlock Text="{Binding}" /> 
                    </StackPanel> 
                </DataTemplate> 
            </dx:WaitIndicator.ContentTemplate> 
    </dx:WaitIndicator>


[ WaitIndicator.xaml.cs ]        추가부분

public static void ShowSplashScreen()

{

    if (!DevExpress.Xpf.Core.DXSplashScreen.IsActive)

    {

        DevExpress.Xpf.Core.DXSplashScreen.Show<WaitIndicator>();

    }

}


public static void CloseSplashScreen()

{

    if (DevExpress.Xpf.Core.DXSplashScreen.IsActive)

    {

        DevExpress.Xpf.Core.DXSplashScreen.Close();

    }

}


[ ButtonClick_Event ] 부분에 사용

WaitIndicator.ShowSplashScreen();

if (DevExpress.Xpf.Core.DXSplashScreen.IsActive)

{

        WaitIndicator.CloseSplashScreen();

 }




※정상적으로 작동되었는데 출력위치가 중앙이 아닐경우 WPF_UserControl이 아닌 윈폼으로 추가해야함.

WinForm으로 추가방법http://plzhoney.tistory.com/20?category=752079




+ Recent posts