gFinger 손끝으로 만드는 세상

 

엑셀에서 사용 할 수 있는 정규식 검색 프로그램 (VBA)를 만들다 보니 정규식에 대한 설명과 예제를 정리 해 놓아야 할 필요성이 느껴집니다.

http://golfin.tistory.com/tag/gUtil

 

그래서 VBA에서 사용되는 정규식 표현과 예제, 관련 사이트 들을 모아 봤습니다.

 

정규식 표현

^  : 텍스트의 시작에서
$  : 텍스트의 끝을 의미
\  : 메타 문자를 표현 하기 위한 명령  (\^ => ^, \$ => $)
.  : 임의의 한 문자
*  : 문자 세트나 메타 문자 뒤에 붙어서 쓰이는 특수 기호로, 0번 이상 반복됨을 의미 ( 동치: {0,} )
+  : 문자 세트나 메타 문자 뒤에 붙어서 쓰이는 특수 기호로, 1번 이상 반복됨을 의미 ( 동치: {1,} )
?  : 문자 세트나 메타 문자 뒤에 붙어서 쓰이는 특수 기호로, 없거나 있거나를 의미. ( 동치: {0,1} )
{n}  : 문자가 n번 반복됨

{n,}  : 문자가 n번 이상 반복됨

{n,m}  : 문자가 n번 이상, m번 이하 반복됨


[...] : 문자 세트 (문자 집합)

        (예: [abc] = a,b,c 중 한 문자 / [a-z] = a,b,c,...,x,y,z 중 한 문자 / [a-zA-Z0-9_] = \w = 영문자,숫자,언더라인)

\w 알파벳이나 숫자

\W 알파벳이나 숫자를 제외한 문자

\d 숫자 [0-9]와 동일

\D [0-9] 이외의 모든것

 

정규식 표현 예제

이메일

^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*$

 

휴대폰

^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$

 

일반전화

/^\d{2,3}-\d{3,4}-\d{4}$/;

 

주민등록 번호

\d{6}\-[1-4]\d{6}

 

IP 주소

([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})

 

^[a-z]+

  셀의 첫문자에서 부터 연속되는 소문자

  aaKK,  a123

 

[^xyz]+

  x,y,z을 제외한 모든 문자

  x1, y2, z3

[0-9]+$

  셀 끝의 숫자 부분

  kkk123, tqadr1

^[0-9]{3,3}

  셀의 첫 부분 부터 3자리 숫자

  112, 113

^[0-3][0-9]

  셀의 첫 부분 부터 00~39사이의 문자

  0044    3044    0944 

 

[a-z]+

   abc1111, 111cda

[a-zA-Z]

   abc1111, 111cda

[a-zA-Z]

   aZc1111, 111cKa

[a-zA-Z0-9] 

   aZc1111, 111cKa

참고 사이트

정규식 설명

http://msdn.microsoft.com/ko-kr/library/ae5bf541.aspx