정규 표현식의 메타 문자 - 특수기호

  정규 표현식(정규식, 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 …
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. 녹차 2013/01/12 02:48 고유주소 고치기 답하기

    정규표현식 설명이 너무 깔끔하게 정리되어 있어서 댓글 남기고 갑니다.

    • 팥알 2013/01/13 02:14 고유주소 고치기 답하기

      덧글 고맙습니다.
      정규표현식은 적어 놓고도 돌아서면 잊어 버려서 저도 자주 들여다 보고 있습니다.^^

  2. ㅊㅎㅈ 2014/11/09 23:32 고유주소 고치기 답하기

    도움받고가요 고맙습니다