본문 바로가기

프로그래밍&IT/C#

C# 에서 정규표현식 - Regex.IsMatch 이용


.Net C#에서 정규표현식 사용하기

간혹 구문의 패턴이나 분석할때 정규표현식을 써야할 때가 존재하더군요.


using System.Text.RegularExpressions;


Regex.IsMatch( 분석할 구문, 패턴 [, 옵션] );



여기서, match위한 패턴정보 입력하는걸 퍼왔습니다.


1. '.'

      임의의 한 문자

      ex) s.e -> sae, sbe, sce, sde ...

          .ce -> ace, kce, dce ...

 

2. '*'

      바로 앞의 문자가 없거나 하나 이상

      ex) s*e -> e, se, see, ssse ...

          abc* -> ab, abc, abcc, abccc ...

          h*im -> im, him, hhim, hhhim ...

 

 3. '+'

      바로 앞의 문자가 하나 이상

      ex) s+e -> se, sse, ssse ...

 

 4. '?'

      바로 앞의 문자가 없거나 하나

      ex) th?e -> e, the 이 두가지표현이 유일하겠지.

 

 5. '^'      (문자열에 대한 녀석)

      바로 뒤의 문자열로 시작.

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

          ^a?bc -> bc, abc ...

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

          ^s.e?.. e는 나와도 되고 안나와도 되고 -> sa, sae, sb, sbe ...

 

  6. '$'      (문자열에 대한 녀석)

      바로 앞의 문자열로 종료

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

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

          s?c+$ -> e, se, ee, eee, seee, seee ...

 

 7. '[]'

      [] 안에 있는 문자 중 하나

      범위는 '-'로 지정

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

          [a-z] -> 영문 소문자

          [a-zA-Z] -> 영문자........ 자바스크립트에서 어렵게 구현한 녀석들인데 간편하내~

          [0-9] -> 숫자

          ag[a-z] -> aga, agbcd, agzzz ...

          ^ab[cd]ef -> abcef, abdef ...

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

                       아이디 검사할 때 첫글자가 영문자와 '_' 만 쓰도록 할때는 ^[a-zA-Z_]

          ^[가-힣]  ->  한글로 시작해야 할 때

          [^a-zA-Z0-9]   ->   ^이 안으로 들어가면 제외의 의미가 된다는거~ 부정의 의미.. 영문자나 숫자로 시작 X

          [a-zA-Z0-9]$ -> 영문자나 숫자로 종료

          "[가-힣]"   ->  한글... 완성형만 가능해.. 가령, ㅋㅋㅋ 같은 녀석은 안된다는 거지.

          "[abc]"  ->   이 안에 있는 문자중에 하나. 즉, a b c 중에 하나의 문자란 말이지.

                        C#문법으로 치면 ("a" || "b" || "c")와 같은 개념이야..


 8. '{}'

       {} 앞의 문자나 문자열 출현 횟수, 스키마에서 min/maxoccur과 같은 개념으로 이해하렴.

       ex) a{2}b -> aab ... a가 꼭 2번 나와야 한다는 뜻.

           a{2,}b -> aab, aaab, aaaab ...  a가 최소 2번 이상 나오도록 하라는 뜻.

           a{2, 3}b -> aab, aaab   ... a는 최소 2번 최대 3번 나오도록 하라는 뜻.

 

 9. '()'

       ()안에 있는 문자를 그룹화

       ex) a(bc){2} -> abcbc  ... a다음 bc가 2번 나와야 한다는 뜻..

           a(bc)* -> abcbcbc ...  a다음 bc의 출현횟수는 무한대가 가능하다는 뜻.

 

  10. '|'

        or 연산자.......

        영어로만 아이디를 만들어라?      [a-zA-Z]+    공백이 없는 영어단어

        ex) he|she -> he, she is..

            (he|she)is -> heis, sheis ...


  11. 특수 문자 사용

        ^  []  $  ()  |  *  +  ?  {}  \

        앞에 \ 붙여서 사용

        ex) \*+  -> * 가 하나 이상 포함된 패턴...... * 나 ** 나 *** 별이 무한대로 계속도 가능하고 말야.

            \d : 순수한 숫자, 정수값, 0-9

            \d{2,3}-/d{3,4}-/d{4}  :   전화번호를 찾는 정규식이야... 여기서 하이퍼는 그냥 하이퍼(-)야.

                                       -? 하이퍼뒤에 물음표가 있으면 하이퍼가 있어도 되고 없어도 된다는 뜻.

            \D : 숫자가 아닌 나머지 모든 얘.

            \w : [a-zA-Z0-9] 의 줄임표현.

            \W : [^a-zA-Z0-9] 영문자와 숫자만 아니면 된다는 뜻.

            \s : 공백

            \S : 공백이 아닌 나머지 얘들.

[출처] 정규표현식에 대해 알아보자.|작성자 JunoMo


이상...