Recent posts

Recent comments

Archive

Calender

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

출처 : MSDN Library

Visual Studio 2005 & Visual Studio 2008 & Visual Studio 2010 을 종합한 내용이며,
흐린 색으로 표시된, 괄호() 안의 내용은 개인적으로 덧붙인 사족입니다. ^^*
어려운 말이 등장하는데, 사족이 없다면 "아,,, 얘도 모르는구나,,," 하시면 됩니다. ㅡ.ㅡ;;
제가 잘못 이해하고 있는 부분이 있다면 댓글을 달아 주십시오. 그런 지적질(?)은 언제나 환영입니다. *^^*


문자 일치

마침표 문자(.)는 문자열에서 단일 인쇄 문자나 인쇄되지 않는 문자를 모두 찾습니다.
단, 줄 바꿈 문자(\n)는 제외됩니다.
다음 정규식은 aac, abc, acc, adc를 비롯하여 a1c, a2c, a-c, a#c 등을 찾습니다.

	/a.c/		

(위의 식을 보면, 마침표를 하나만 사용하여, a와 c 사이에 문자 하나가 들어가 있는 것을 검색합니다.
사이에 들어간 문자가 어떤 것이든지간에 몽땅 다 찾습니다.
하지만 a와 c 사이 어딘가에서 다음 줄로 넘어간 형태는 검색되지 않습니다)


문자 그대로의 마침표(.)를 검색하려면, 식에서 마침표 앞에 백슬래시(\)를 넣어줍니다.
아래의 정규식은 filename.txt를 찾습니다.

	/filename\.txt/	

이러한 식을 사용하면 단일 문자만 찾을 수 있습니다.

하지만 목록에서 특정 문자들을 찾아야 할 경우도 있습니다.
예를 들어, 숫자로 표시된 장 제목(Chapter 1, Chapter 2 등)을 찾아야 할 수도 있습니다.


일치하는 문자 목록 - (대괄호 식)

하나 이상의 개별 문자를 대괄호([ ])로 묶어 일치하는 문자 목록을 만들 수 있습니다.

문자를 대괄호로 묶으면 해당 목록을 대괄호로 묶은 식(대괄호 식)이라고 합니다.

어디서든 대괄호 안에서 일반 문자는 그 자체를 나타내므로 입력 텍스트 안에서 문자 자체를 찾습니다.

대괄호 식 내에 사용된 대부분의 메타문자는 원래 의미를 잃게 됩니다. 다음과 같은 몇 가지 예외가 있습니다.

  • ] 문자는 첫 항목이 아니면 목록을 끝냅니다.
    목록에서 ] 문자를 찾으려면 여는 [ 바로 다음에, 첫 번째 위치에 해당 문자를 둡니다.
  • \ 문자는 계속 이스케이프 문자로 사용됩니다. \ 문자를 찾으려면 \\을 사용합니다.

( 메타 문자를 대괄호 [] 안에 넣으면, 어떤 기능을 가진 문자가 아닌, 단순한 문자 자체로 인식됩니다.
단, \의 기능은 계속 유지됩니다.

원래 대괄호의 의미는, '['에서 목록을 시작해서 ']'에서 목록을 끝내라는 말이지만,
대괄호 안에 어떤 문자도 들어가 있지 않은 상태 즉, 첫 항목으로 ']' 이 놓이면
']'를 검색하라는 뜻으로 받아들입니다. )


대괄호로 묶인 문자는, 정규식 내에서 대괄호 식이 놓인 그 위치에서 단일 문자만을 찾습니다.
다음 정규식에서는 Chapter 1, Chapter 2, Chapter 3, Chapter 4 및 Chapter 5를 찾습니다.
(아래 정규식을 보면, Chapter 다음에 대괄호 식이 놓여져 있으므로, Chapter 바로 다음에 오는 것을 검색합니다)

	/Chapter [12345]/	

Chapter 문자와 그 뒤에 공백은 대괄호 내의 문자와 상대적인 위치에 고정되어 있습니다.

대괄호 식은 Chapter 단어와 공백 바로 뒤에 오는 단일 문자 위치를 찾는 문자 집합만 지정하는데 사용됩니다.
그것이 바로 9번째 문자 위치입니다.


( 위의 정규식을 보면 Chapter 라는, 단일 문자 7개로 구성된 낱말이 있고
그 뒤에 공백 하나가 오고, 그 다음에 지정된 숫자 1~5가 놓여져 있습니다.
따라서 하나하나 더해보면, 숫자들의 위치가 9번째입니다. )


문자 자체가 아닌 범위를 사용하여 일치하는 문자를 표현하려면, 하이픈(-) 문자를 사용하면 됩니다.

위의 정규식 /Chapter [12345]/ 을 범위 식으로 표현하면 다음과 같습니다.

	/Chapter [1-5]/		

이런 식으로 범위를 지정하면, 시작 값과 끝 값도 모두 범위에 포함됩니다.

개별 문자의 문자 값은 범위 내에서 상대적인 순서를 결정합니다.

또한, 유니코드 정렬 순서에 따라 시작 값이 끝 값보다 반드시 앞에 와야 합니다.

대괄호 식에서 하이픈 문자를 포함하려면, 아래의 세 가지 중 하나를 수행합니다.

  • 백슬래시를 사용하여 하이픈 문자를 이스케이프합니다.
    [\-]
  • 대괄호로 묶은 목록의 시작이나 끝 부분에 하이픈 문자를 넣습니다. 다음 식에서는 모든 소문자와 하이픈을 찾습니다.
    [-a-z]
    [a-z-]
  • 시작 문자 값이 하이픈 문자보다 작고 끝 문자 값이 하이픈보다 크거나 같은 범위를 만듭니다.
    다음 정규식은 모두 이러한 요구 사항을 충족시킵니다.
    [!--]
    [!-~]

목록이나 범위에 없는 문자를 모두 찾으려면 목록의 시작 부분에 캐럿(^) 문자를 입력합니다.
목록 내에서 캐럿 문자가 시작 부분이 아닌, 다른 위치에 나타나면 캐럿 문자 자체를 찾습니다.

다음 정규식에서는 5보다 큰 장 제목을 찾습니다.

	/Chapter [^12345]/ 

	또는 

	/Chapter [^1-5]/

위의 예제에서 해당 식은 9번째 위치에서 1, 2, 3, 4, 5를 제외한 모든 숫자를 찾습니다.
따라서 Chapter 7이나 Chapter 9는 일치 항목이 됩니다.

대괄호 식의 일반적인 사용은 대문자나 소문자 또는 숫자로 된 일치 항목을 지정하는 것입니다.
다음 식은 모든 대문자나 소문자 또는 숫자를 검색합니다.

	/[A-Za-z0-9]/ 

다음 정규식은, 모음이 아닌 모든 문자를 찾습니다.

	/[^aAeEiIoOuU]/ 


이 내용이 도움이 되셨다면, 아래의 하트 버튼을 눌러주세요. *^^*

'정규식 (정규표현식) > MSDN Library' 카테고리의 다른 글

06 정규식 - 교체 / 그룹화 / 역참조  (0) 2014.12.11
05 정규식 - 앵커  (0) 2014.12.11
04 정규식 - 수량자  (0) 2014.12.11
02 정규식 - 문자의 종류  (0) 2014.12.11
01 정규식의 개념  (0) 2014.12.11