프리랜서 웹디자이너 웹퍼블리셔RELATION

RELATION 로고

PHP 웹프로그래밍

[정규식] 정규식(Regular Expression)

2012.12.01
북마크 작성자 정보
정규식은 문자열의 집합을 다루고 표현하는데 사용하는 규칙입니다. 보통 문자열 검색과 같은 패턴 매칭에 많이 응용됩니다. 보통 정규 표현식이라고도 합니다. 정규식은 여러 가지 규칙이 있습니다. 일단 이 규칙부터 알아보겠습니다.

^문자열의 시작
$문자열의 마지막
.임의의 한 문자
** 앞에 있는 문자가 반복되는 경유, 없을 수도 있습니다.
++ 앞에 있는 문자가 적어도 한번 이상 나오는 경우
?? 앞에 하나의 문자, 없을 수도 있습니다.
[][] 안에 있는 문자열 중에 한 문자
{}{}앞에 있는 문자 또는 문자열의 개수
()()안에 있는 글자들의 그룹화
|OR 연산자 기능

^
^abc : abc로 시작하는 문자열, abc(0),abcd(0),abcde(0),bca(X),cba(X)

$
abc$ : abc로 끝나는 문자열, abc(0),dabc(0),eabc(0),abcd(X)

.
a.c : a와 c 사이에 한 문자 허용, abc(0),adc(0),abdc(X)

*
a*c : a 문자가 반복되거나 없는 경우, c(0),ac(0),aaac(X),aaad(X)

+
a+c : a 문자가 적어도 한번 나오는 경우, ac(0),aac(0),c(X)

?
a?c : a가 없거나 한 개 존재, c(0),ac(0),aac(X)

[]
a[bc] : b,c 중 한 문자가 존재 ab(0),ac(0),ad(X),a(X)
a[bcd]e : b,c,d 중 한 문자가 존재 abe(0),ace(0),ade(X),afe(X)
a[b-e] : b,c,d,e 중 한 문자가 존재 ab(0),ae(0),ad(X),af(X),a(X)


그외 여러개의 문자들이 일렬의 순서로 되어 있을 경우 아래와 같이 간단하게 표현할 수 있습니다.

[a-z]알파벳 소문자 중 한 문자
[A-Z]알파벳 대문자 중 한 문자
[0-9], [[:digit:]]숫자중한자
[a-zA-Z],[[:alpha:]]알파벳 대, 소문자 중 한 문자
[a-Z0-9],[[:alnum:]]알파벳 대 소문자와 숫자 중 한자
[[:space:]]공백문자
[[:punct:]]모든 구두점 기호

^[1-9][0-9]*$ : 처음 숫자가 0이 아니고 끝까지 숫자로 구성, 가격 체크에 사용, 1000(0), 4500(0), 55(0), 055(X), 45R(X)
{}
ab{2}c : ab가 두번 반복, ababc(0) ab{1, 3}c : ab가 한번에서 세번까지 반복, abc(0), ababc(0), abababc(0)
ab{1,}c : ab가 한번부터 무한정 반복, abc(0), ababc(0), abababc(0)....
^a{4}$ : aaaa(0)

()
a(bc)*e : bc만 * 참조, ae(0), abce(0), abcbce(0), abcbcbce(0)...
a(b{2}) : a와 두 개 이상의 b들로 된 문자열, abb(0),abbb(0),ab(X),bbb(X)

|
a(b|c)*d : b 또는 c 가 반복 존재, ad(0), abd(0), acd(0), abbbd(0), accd(0), abcd(X)

이 포스트 공유하기

전체목록