정규 표현식(정규식, regular expression)에서 메타 문자(meta character)들은 특별한 뜻이 담기어 문자열 양식을 나타내는 데에 쓰인다. 아래에 특수기호로 나타내는 메타 문자의 뜻과 정규 표현식에 맞는 문자열의 보기를 정리하였다.
1) ^
식 |
뜻 |
맞는 문자열 |
^group |
group으로 시작하는 문자열 |
group, groups, group program, … |
2) $
식 |
뜻 |
맞는 문자열 |
ing$ |
ing로 끝나는 문자열 |
ing, sing, hosting, booting, … |
^code$ |
code로 시작하고 끝남 |
code |
3) .
식 |
뜻 |
맞는 문자열 |
a.b |
a와 b 사이에 한 문자가 낀 문자열 |
aab, abb, acb, … |
ab. |
ab 다음에 한 문자가 붙은 문자열 |
aba, abb, abc, … |
a..b |
a와 b 사이에 두 문자가 낀 문자열 |
a11a, aabb, abbb, … |
^.ape |
ape 앞에 한 문자가 낀 문자열로 시작함 |
tape, caper, … |
4) *
식 |
뜻 |
맞는 문자열 |
m*r |
r 앞에 m이 없거나 하나 이상 있음 |
r, mr, mmr, mmmr, … |
mr*s |
m 다음에 r이 없거나 하나 이상 있고 s가 맨 뒤에 있음 |
ms, mrs, mrrs, mrrrs, … |
mrs* |
mr 다음에 s가 없거나 하나 이상 있음 |
mr, mrs, mrss, mrsss, … |
5) +
식 |
뜻 |
맞는 문자열 |
m+r |
r 앞에 m이 하나 이상 있음 |
mr, mmr, mmmr, … |
mr+s |
m 다음에 r이 하나 이상 있고 s가 맨 뒤에 있음 |
mrs, mrrs, mrrrs, … |
mrs+ |
mr 다음에 s가 하나 이상 있음 |
mrs, mrss, mrsss, … |
6) ?
식 |
뜻 |
맞는 문자열 |
ws?p |
w와 p 사이에 s가 하나 있거나 없음 |
wp, wsp |
7) [ ] (꺾쇠묶음, 대괄호)
- 꺾쇠묶음는 한 문자를 가리킴
- 묶음 안의 내용은 가리키는 문자의 범위를 나타냄 (문자 클래스로서 정규 표현식과는 언어과 다름)
- 특정한 문자열을 제외하려면 묶음 안에서 '^'를 씀
식 |
뜻 |
맞는 문자열 |
[w]s |
s 앞에 w가 붙음 |
ws |
[ws]p |
p 앞에 w나 s가 붙음 |
wp, sp |
[a-z]8 |
8 앞에 잔 로마자(소문자) 하나가 붙음 |
a8, b8, c8, … , z8 |
[a-zA-z][0-9] |
로마자 하나 뒤에 숫자 하나가 붙음 |
a0, b5, K3, … |
[^w]s |
s 바로 앞에 w가 아닌 문자 하나가 붙음 |
as, 2s, es, … |
[^ws]p |
p 바로 앞에 w나 s가 아닌 문자 하나가 붙음 |
ap, hp, op, … |
[^a-z]8 |
8 바로 앞에 잔 로마자가 아닌 문자 하나가 붙음 |
A8, C8, 38, #8, … |
^[^gh][^ij]$ |
g나 h가 아닌 한 문자로 시작하고 i나 j가 아닌 한 문자로 끝남 (꺾쇠묶음 밖의 ^는 문자열의 처음을 나타냄) |
ab, ty, ig, jh, … |
8) { } (활짱묶음, 중괄호)
- 활짱묶음은 앞에 있는 문자의 개수를 나타냄
- 묶음 안에서 ','는 문자 개수의 범위를 나타낼 때 씀
식 |
뜻 |
맞는 문자열 |
w{0}s |
s 앞에 w가 없음 |
s |
w{1}s |
s 앞에 w가 하나 붙음 |
ws |
ws{3}p |
w가 앞에 오고 s가 셋 붙으면서 p가 뒤에 붙음 |
wsssp |
w{1,3}s |
s 앞에 w가 1~3개 붙음 |
ws, wws, wwws |
w{,2}s |
s 앞에 w가 두 개 이하 붙음 |
s, ws, wws |
w{2,}s |
s 앞에 w가 두 개 이상 붙음 |
wss, wsss, … |
9) ( ) (손톱묶음, 소괄호)
식 |
뜻 |
맞는 문자열 |
(ws)p |
p 앞에 ws가 붙음 |
s |
(ws){2}p |
s 앞에 ws가 두 번 붙음 |
wswsp |
[^(web)]p |
p 앞에 web이 아닌 문자나 문자열이 옴 |
ap, zzp, wp, wep, webpp, … |
10) | (위아랫금, 수직선)
- '또는', 'or'과 같은 뜻으로 선택문에 쓰임
식 |
뜻 |
맞는 문자열 |
word|phrase |
word 또는 phrase |
word, phrase |
mount(ed|ing) |
mounted 또는 mounting |
mounted, mounting |
[^(a|b|c)].+ |
a 또는 b 또는 c로 시작하지 않는 문자열 |
|
11) \ (거꿀빗금)
식 |
뜻 |
맞는 문자열 |
안 맞는 문자열 |
\[[^\[\]]+\] |
꺾쇠묶음으로 한 겹만 싸인 문자열 |
[a], [ab], [abc], … |
[], [[abcd]], [a[]], … |
[^\.]+\.(com|net) |
com, net로 끝나는 바탕 도메인 이름 (서브 도메인이 아닌 것) |
a.com, b.net, … |
b.a.com, .a.com, .net … |
덧글을 달아 주세요
녹차 2013/01/12 02:48 고유주소 고치기 답하기
정규표현식 설명이 너무 깔끔하게 정리되어 있어서 댓글 남기고 갑니다.
팥알 2013/01/13 02:14 고유주소 고치기 답하기
덧글 고맙습니다.
정규표현식은 적어 놓고도 돌아서면 잊어 버려서 저도 자주 들여다 보고 있습니다.^^
ㅊㅎㅈ 2014/11/09 23:32 고유주소 고치기 답하기
도움받고가요 고맙습니다
팥알 2014/11/10 12:57 고유주소 고치기 답하기
네, 반갑습니다.^^