03 정규식 - 문자 일치 🕔 2014. 12. 11. 16:15
출처 : 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 |