정규식

. 메타 문자

. 메타 문자는 임의의 한 글자를 나타낸다.

예를 들어 a.b는 abc, adb 등을 나타낸다. 중요한 것은 '.' 메타 문자는 오직 임의의 한 글자를 나타낼 뿐이며 구문의 파싱은 앞부터 일어난다는 것이다. 예를 들어 ab..에 해당하는 문자열 중 abab라는 문자열은 앞의 ab에만 적용된다. 너무 추상적이니 예제를 통해 보다 확실히 이해하도록 하자.

사용예

설명

해당 문자열

a.b

a 와 b 사이에 임의의 한 글자를 갖는 문자열

abb, apb, aqb

ab.

ab 뒤에 임의의 한 글자를 갖는 문자열

abc, abd

ab....

ab 뒤에 임의의 네 글자를 갖는 문자열

abcdef,

abbbbb, abcabc

.ab

ab 앞에 임의의 한 글자를 갖는 문자열

bab, cab, dab

 

 

^ 메타 문자

^ 메타 문자는 ^ 문자 바로 뒤에 오는 문자열과 비교 대상이 되는 문자열의 처음 부분을 비교하여 ^ 문자 바로 뒤에 오는 문자열로 시작되는지 알아낸다.

사용예

설명

해당 문자열

^I love

I love로 시작하는 문자열

I love PHP,

I love porgramming.

^.ove

ove 앞에 임의의 한 글자로 시작하는 문자열

Love me plz

 

 

$ 메타 문자

$ 메타 문자는 $ 문자 바로 전에 오는 문자열과 비교 대상이 되는 문자열의 끝 부분을 비교하여 $ 문바 바로 전에 오는 문자열로 끝나는가를 알아낸다.

사용예

설명

해당 문자열

PHP$

PHP로 끝나는 문자열

I love PHP,

I hate PHP

love PHP$

love PHP로 끝나는 문자열

We love PHP

 

 

* 메타 문자

* 메타 문자를 도스와 유닉스의 * 와 혼동하지 말기 바란다. 여기서는 그 쓰임새가 완전히 다르다.

* 메타 문자 앞에는 반드시 한 문자 이상의 문자열이 와야하는데 * 앞에 있는 문자가 존재하지 않던가 혹은 하나 이상 존재하는 문자열을 의미한다. . 문자가 오직 한 문자만을 다루는 것에 비해 * 메타 문자는 복수의 문자를 다룰 수 있다.

예제를 보면서 확실히 이해하도록 하자.

사용예

설명

해당 문자열

a*c

c 앞에 a가 없거나 혹은 하나 이상 존재하는 모든 문자열

c, ac,

aac, aaac

ab*c

a는 반드시 있어야 하고 c 앞에 b가 없거나 혹은 하나 이상 존재하는 모든 문자열

ac, abc,

abbc, abbbc

abc*

ab는 반드시 있어야 하고 c가 없거나 혹은 하나 이상 존재하는 모든 문자열

ab, abc,

abcc, abccc

a*bc

bc앞에 a가 없거나 혹은 하나 이상 존재하는 모든 문자열

bc, abc,

aabc, aaabc

 

 

+ 메타 문자

+ 메타 문자 앞에는 반드시 한 문자 이상의 문자열이 와야하는데, + 앞에 있는 문자가 하나 이상 존재하는 문자열을 의미한다. + 메타 문자는 * 메타 문자와 비슷하니 * 메타 문자와 비교하여 설명한다.

a*bc bc 앞에 a가 없거나 혹은 하나 이상 존재하는 모든 문자열인 것에 비해 a+bc bc 앞에 a가 하나 이상 존재하는 모든 문자열이다.

사용예

설명

해당 문자열

a+c

c 앞에 a가 하나 이상 존재하는 문자열

ac, aac, aaac

 

ab+c

a는 반드시 있어야 하고 c 앞에 b가 하나 이상 존재하는 모든 문자열

abc, abbc, abbbc

abc+

ab는 반드시 있어야 하고 c가 하나 이상 존재하는 모든 문자열

abc, abcc, abccc

a+bc

bc 앞에 a가 하나 이상 존재하는 모든 문자열

abc, aabc, aaabc

 

 

? 메타 문자

? 메타 문자의 앞 문자가 없거나 하나임을 의미한다.

사용예

설명

해당 문자열

a?c

c 앞에 a가 없거나 혹은 한 개 존재하는 모든 문자열

c, ac

ab?c

a는 반드시 있어야 하고 c 앞에 b가 없거나 혹은 한 개 존재하는 모든 문자열

ac, abc

abc?

ab는 반드시 있어야 하고 c가 없거나 혹은 한 개 존재하는 모든 문자열

ab, abc

a?bc

bc앞에 a가 없거나 혹은 한 개 존재하는 모든 문자열

bc, abc

 

 

[, ] 메타 문자

대괄호 안에 있는 문자들은 문자 한 개씩 취급하며 문자열이 아니다.

각각의 문자들은 괄호 앞 또는 뒤에 오는 문자열들과 병렬로 조합되어 나타내어진다.  문자의 범위를 정할 때는 - 문자를 사용한다. 특정한 문자를 제외한 모든 문자를 포함하고 싶다면 ^ 문자를 사용한다.

사용예

설명

해당 문자열

[a]b

b 앞에 a를 포함하는 모든 문자열

ab

[ab]c

c 앞에 a 또는 b를 포함하는 모든 문자열

ac, bc

[a-d]e

e 앞에 a 또는 b 또는 c 를 포함 하는 모든 문자열

ae, be, ce, de

[ab][cd]

c 앞에 a 또는 b를 포함하거나 d 앞에 a 또는 b를 포함하는 모든 문자열

ac, ad, bc, bd

[^a]b

b 앞에 a를 포함하지 않은 모든 문자열

bb, cb, db, eb

[^ab]c

c 앞에 a 또는 b 를 포함하지 않는 모든 문자열

dc, ec, fc, gc

[^a-d]e

e 앞에 a 또는 b 또는 c 또는 d를 포함하지 않는 모든 문자열

ee, fe, ge, he

[^ab][^cd]

c 혹은 d가 아닌 문자 앞에 a 또는 b가 아닌 모든 문자열

ee, fe, ca, db

 

 

{, } 메타 문자

중괄호 안에는 임의의 숫자가 들어가는데 중괄호 앞에 있는 문자의 개수를 정의한다.

,는 숫자의 범위를 지정한다.

사용예

설명

해당 문자열

a{0}b

b앞에 a가 없는 문자열

b

a{1}b

b앞에 a가 한 개인 문자열

ab

a{2}b

b앞에 a가 두 개인 문자열

ab, aab

a{1,3}b

b앞에 a가 한 개 또는 두 개 또는 세 개인 문자열

ab, aab, aaab

a{2,}b

b앞에 a가 최소한 두 개 이상인 문자열

aab, aaab, aaaab

 

 

(,) 메타 문자

괄호 안에 있는 문자들을 그룹화하여 한 문자처럼 취급한다. 

사용예

설명

해당 문자열

(ab)c

c 앞에 ab가 있는 문자열

abc

(ab){2}c

c 앞에 abab가 있는 문자열

abab

[^(ab)]c

c 앞에 ab가 없는 문자열

cc, ccc, bac, dbc

 

 

| 메타 문자

| 메타 문자는 OR 연산을 한다.

사용예

설명

해당 문자열

I|love

I나 love를 포함하는 문자열

I love you

What( I| love)

What 뒤에 I love를 포함하는 문자열

What I am?

 

 

\ 메타 문자

\ 메타 문자는 메타 문자의 성질을 상실하게 한다. 메타 문자를 출력하기 위해 사용한다.

예를 들어 \||, \..을 나타낸다.

'WebDevelop > PHP' 카테고리의 다른 글

$_FILES의 활용..  (0) 2007.11.23
PHP5 새로운 함수  (0) 2007.11.05
PHP5에서의 객체지향프로그래밍  (0) 2007.11.02
Return top