ㄱ. 목적

1. C#에서 정해진 패턴을 사용해서 패턴에 일치하는 값을 판단하는 정규 표현식의 종류와 사용법에 대해 알아보자


ㄴ. 본론

1. 정해진 패턴에 대한 표현식들은 다음과 같다.

  • 정규 표현식에 사용되는 특수 문자
    • '.'  => 
      • 임의의  문자를 의미합니다.
        • a.c -> abc, aec, avc, …
        • .us -> bus, cus, dus, …
    • '*'
      • 바로 앞의 문자가 없거나 하나 이상인 경우
        • s*e -> e, se, see, ssse, …
        • abc* -> ab, abc, abcc, abccc, …
        • h*im -> im, him, hhim, hhhim, …
    • '+'
      • 바로 앞의 문자가 하나 이상
        • s+e -> se, sse, ssse, …
    • '?'
      • 바로 앞의 문자가 없거나 하나뿐인 경우
        • th?e -> e, the 두가지 표현이 유일함
    • '^'
      • 바로 뒤의 문자열로 시작
        • ^The.. 뒷부분부터 공백까지 검사. -> The girl is, Theather
        • ^a?bc -> bc, abc, …
        • ^.e -> he, me, request, settle, …
        • ^s.e?.. E 나와도되고 안나와도 됩니다. -> sa, sae, sb, sbe, …
    • '$'
      • 바로 앞의 문자열로 종료
        • a?bc$ -> eeabe, seebc, bc..
        • +.e$ -> onthetoe, bctae, appetittle, …
        • s?c+$ -> e, se, ee, eee, seee, seee, …
    • '[ ]'
      • [ ] 안에 있는 문자  하나(범위의 경우 '-' 지정합니다.)
        • [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-Z0-9] -> '^' 표시가 대괄호 안으로 들어갈 경우 제외의 의미가 됩니다부정의 의미. ->영문자나 숫자로 시작할  없ㅅ브니다.
        • [a-zA-Z0-9]$ -> 영문자나 숫자로 종료
        • "[-]" -> 한글 완성형만 가능합니다. "ㅋㅋ", "ㅎㅎ같은 구문은 불가능합니다.
        • "[abc]" -> abc 하나라는  -> c#문법으로 if("a" || "b" || "c") 같음.
    • '{ }'
      • { } 앞의 문자나 문자열의 출현 횟수, Schema에서 min / maxoccur 같은 개념
        • a{2}b -> aab, … -> a  2 나와야 
        • a{2, }b -> aab, aaab, aaaab, … -> a 2 이상 나와야 
        • a{2, 3}b -> aa, aaab -> a 2~3 나와야 
    • '( )'
      • ( )안에 있는 문자를 그룹화
        • a(bc){2} -> abcbc -> a 다음 bc 2 나와야 
        • a(bc)* -> abcbcbcbc -> a 다음 bc 출현이 무한대로 가능 
    • '|'
      • or 연산자
        • 영어로만 아이디를 만들라 -> [a-zA-Z]+ 공백없는 영어단어
          • He|She -> he, she is..
          • (He|She)is -> Heis, Sheis
    • 특수문자 사용
      • ^ [] $ () | * + ? {} \
        • 앞부분에 \ 붙여서 사용합니다.
          • \*+ -> * 하나 이상 포함된 패턴.. -> * ** *** 무한대로 가능
          • \d : 정수
          • \d{2, 3} - / d{3,4} - / d{4} : 전화번호 찾는 정규식
          • \D : 숫자가 아닌 나머지 모두
          • \w : [a-zA-Z0-9] 줄임 표현
          • \W : [^a-zA-Z0-9] 영문자와 숫자만 아니면 .
          • \s : 공백
          • \S : 공백이 아닌 나머지
  • 예제
    • 4.6% 찾는다
      • [0-9]{1,3}\.?[0-9]*%
    • 전화번호를 찾는다.
      • \d{2,3}-\d{3,4}-\d{4}
      • [0-9]{2,3}-[0-9]{3,4}-[0-9]{4}
    • 이름(textBox)
      • [-]{2,5}
        • 한글 최소 2~5글자 입력가능
    • 나이(textBox)
      • [0-9]{1,2}
      • 1?[0-9]?[0-9]
    • 주민등록번호
      • [0-9]{6}-[0-9]{7}
      • [0-9][0-9][01][0-9][0123][0-9]-[1234][0-9]{6}


2. C# 사용 예제



3. 결론

- C#에서 정규식의 예와 그 사용을 알아보았습니다. 

Posted by 시크한공돌이
,