posted by changhozz 2012. 7. 25. 18:36

정규표현식 문법

^ : 문자열의 시작을 나타냄.

$ : 문자열의 종료를 나타냄.

. : 임의의 한 문자를 나타냄. (문자의 종류는 가리지 않는다)

| : or를 나타냄.

? : 앞 문자가 없거나 하나있음을 나타냄.

+ : 앞 문자가 하나 이상임을 나타냄.

* : 앞 문자가 없을 수도 무한정 많을 수도 있음을 나타냄.

.* : 임의의 한 문자가 없을수도 무한정 많을 수도 있음을 나타내는데

띄어쓰기(공백)도 포함하므로 .*을 쓴다면 띄어쓰기에 대하여 신경쓸필요가없다. 

[] : 문자 클래스를 지정할 때 사용한다. 문자의 집합이나 범위를 나타내며 두 문자 사이는 '-' 기호로 범위를 나타낸다.

[]내에서 ^ 가 선행하여 나타나면 not 를 나타낸다.

{} : 선행문자가 나타나는 횟수 또는 범위를 나타낸다.

a{3} 인 경우 a가 3번 반복된 경우를 말하며, a{3,}이면 a가 3번 이상 반복인 경우를 말한다. 또한 a{3,5}인 경우

a가 3번 이상 5번 이하 반복된 경우를 나타낸다.

( ): 소괄호 ‘( )’ 특수문자는 ‘( )’ 특수문자 안의 글자들을 하나의 문자로 봅니다. 예를 들어 ‘gu(gg){2}le’ 와 같은 패턴을 작성하게 되면

‘guggggle' 문자열이 문자열에 포함되어 있어야 됩니다.

|: 패턴 안에서 OR연산을 사용할 때 사용합니다. 예를 들어 'hi|hello' 는 hi 나 hello 가 포 함되어있는 문자열을 의미합니다.

\w : 알파벳이나 숫자

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

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

\D : 숫자를 제외한 모든 문자

\: 위의 각 기능에서 벗어납니다(escape).

(?i): 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않는다 (물음표+소문자i(아이))

기본적인 문자열 검증 정규식

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

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

^[가-힣]*$ : 한글만

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

.+ : 한문자 이상의 전체문자를 표시한다.

[a-z&&[def]]

d, e, or f (intersection) -- 소문자 a~z까지범위중 def하나와같은것이면참이다. 교집합과같다.

[a-z&&[^bc]]

a through z, except for b and c: [ad-z] (subtraction) -- 소문자 a~z까지의범위중 b c아니면참이다

[a-z&&[^m-p]]

a through z, and not m through p: [a-lq-z](subtraction) -- 소문자 a~z까지의범위중 m~p사의것이아니면참이다.

 

 

 

정규식 표현 예제

이메일 : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$ or ^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*$

휴대폰 : ^01(?:01[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})

파일확장자: ([^\s]+(\.(?i)(jpg|png|gif|bmp))$)

 

'정규식' 카테고리의 다른 글

정규식 정리  (0) 2012.07.24
정규식  (0) 2012.07.16