본문 바로가기

소프트웨어/개발관련

02.정규표현식(正規表現式, Regular Expression) 예시

정규표현식은 기본적으로 

   대,소문자를 구분하고 공백(Space)의 개수를 구분하며

   ^문자는 ^뒤에 나오는 패턴이 소스문자열의 시작 위치에 있는 것을 검출

   $문자는 $앞에 나오는 패턴이 소스문자열로 종료되는 것을 검출

   \ \뒤의 문자를 일반 문자로 취급해서 소스 문자열을 검사함

   .은 모든 문자와 매칭됨


[ ]로 표현식을 묶어주면 소스문자열에서 표현식에 포함되는 문자열을 찾아줌, [ ]안에 있는 표현식은 기본적으로 문자 1개를 의미하게 됨


^ [ ]안에서 사용할 경우 부정의 의미로 사용됨

( ) |를 사용하여 서브패턴을 지정할 수 있음


* 0~n개를 의미

+ 1~n개를 의미

? 0또는 1개를 의미

{ }안에 표시되는 수량을 만족해야함, 1이상 3이하의 경우는 {1,3}과 같이 표시할 수 있음


수량자(*,+,?) 뒤에 ?가 오면 ?앞의 수량자가 지정하는 최소값을 의미

(탐욕적 수량자를 게으른 수량자료 변경)


\w는 워드를 의미(알파벳,숫자,_)

\W는 워드가 아닌 것을 의미

\d는 숫자를의미

\D는 숫자가 아닌 것을 의미 

 

g : 전역 매칭을 한다. 처음부터가 아닌 전체에서 정규식이 맞는걸 찾는다.

i : case Insensitive, 대소문자 구별안함

m : Multiline


사용 예시

1) 숫자만 : ^[0-9]*$

2) 영문자만 : ^[a-zA-Z]*$

3) 한글만 : ^[-]*$

4) 영어 & 숫자만 : ^[a-zA-Z0-9]*$

5) E-Mail : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$

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

^(010|011|016|017|018|019)-d{3,4}-d{4}$

7) 일반전화 : ^\d{2,3} - \d{3,4} - \d{4}$

^(070|02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064)-d{3,4}-d{4}$

8) 주민등록번호 : \d{6} \- [1-4]\d{6}

^d{2}[0-1]d[0-3]d-?[1-6]d{6}$

9) IP 주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})

10) 우편번호 :  ^d{3}-?d{3}$

11) 아이디 :  ^[a-zA-Z]w{2,7}$