익스프레션 스튜디오
[C#.NET 고급강좌]
  [정규표현식] Regular Expression 정리 - [거의 퍼옴]
 작성자 : 대디곰  작성일 : 2012-10-31
 E-mail : daddygom골뱅me.com  Homepage : http://daddygoms.tistory.com
 강좌 읽음 : 36279  
안녕하세요 대디곰입니다^^
요즘 규식이형(정규식)이랑 좀 싸우느라
대충 여기저기 보고 정리한 내용 옮깁니다.

모두들 규식이형이랑 친하게 지내세요^^*

[정규표현식(Regular Expression)]

 

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

 

  • 정규 표현식에 사용되는 특수 문자
    • '.'  =>
      • 임의의 문자를 의미합니다.
        • 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}

 

 

 

출처 : http://blog.naver.com/funny7103/90027820184


평점: 8.0/10 (1명 참여)    

나도한마디
사용자
화랑            [2013-01-29]
Level 99
 [EXP.만랩]
와 정말 감사드립니다.
사용자
한가람1            [2013-06-10]
Level 25
 [EXP.16/50]
좋은 정보 정말 감사합니다.
사용자
prokorsh            [2016-09-27]
Level 21
 [EXP.43/50]
감사합니다