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


앵커 (줄 및 단어 경계)

지금까지의 예제에서는 장 제목을 찾는 데만 중점을 두었습니다.


Chapter 문자열 뒤에 공백 하나와 숫자가 나타나는 값은 실제 장 제목이 될 수도 있지만
다른 장에 대한 상호 참조가 될 수도 있습니다. (챕터 내에서 다른 챕터를 인용하거나 링크를 걸 경우)


실제 장 제목은 항상 줄의 시작 부분에 나타나므로, 상호 참조가 아닌 제목만 찾을 수 있는 방법이 필요합니다.
앵커는 그러한 기능을 제공합니다.


앵커를 사용하면 줄의 시작 부분이나 끝 부분 중 한 곳에 정규식을 고정할 수 있습니다.
단어의 시작 부분이나 끝 부분에서 단어 내에서 사용하는 정규식을 만들 수도 있습니다.


다음 표에는 정규식 앵커와 그 의미에 대한 목록이 들어 있습니다.


^ 입력 문자열의 시작 부분에서 위치를 찾습니다.
RegExp 개체의 Multiline 속성이 설정되어 있으면, ^에서는 \n이나 \r 다음의 위치도 찾습니다.
$ 입력 문자열의 끝 부분에서 위치를 찾습니다.
RegExp 개체의 Multiline 속성이 설정되어 있으면, $는 \n이나 \r 앞의 위치도 찾습니다.
\b 단어 경계, 즉 단어와 공백 사이의 위치를 찾습니다.
\B 비단어 경계를 찾습니다.
[표 5] 정규식 앵커

단!! 앵커와 수량자를 함께 사용할 수는 없습니다.
줄 바꿈이나 단어 경계의 바로 앞이나 뒤에서 두 개 이상의 위치를 가질 수 없으므로 ^*와 같은 식은 허용되지 않습니다.


텍스트 줄의 시작 부분에서 텍스트를 찾으려면 정규 식의 시작 부분에서 ^ 문자를 사용합니다.


이러한 ^의 사용을 대괄호 식 내에서의 사용과 혼동하지 마십시오.


텍스트 줄의 끝 부분에서 텍스트를 찾으려면 정규 식의 끝 부분에서 $ 문자를 사용합니다.



다음 정규식에서는 장 제목을 검색할 때, 두 자리 숫자만 오고 줄의 시작 부분에서 사용하는 장 제목을 찾습니다.

	/^Chapter [1-9][0-9]{0,1}/ 

실제 장 제목이 줄의 시작 부분에서 사용하고 해당 줄에 있는 유일한 텍스트가 됩니다.
또한 줄의 시작 부분에서 사용하고 같은 줄의 끝 부분에서 사용하기도 합니다.



다음 식에서는 지정한 일치에서 장 제목만 찾고 상호 참조는 찾지 않습니다.
시작 부분에서 그리고 텍스트의 줄 끝 부분에서만 찾는 정규식을 만들어 장 제목만 찾을 수 있게 됩니다.

	/^Chapter [1-9][0-9]{0,1}$/ 

단어 경계는 단어와 공백 사이의 위치입니다.
비단어 경계는 그 이외의 위치입니다.


다음 식에서는 Chapter 단어의 첫 세 글자가 단어 경계 다음에 나타나기 때문에 이 문자를 찾습니다.

	/\bCha/ 

\b 연산자의 위치는 중요합니다.
이 연산자가 찾아야 할 문자열의 시작 부분에 있으면 단어의 시작 부분에서 일치 항목을 찾고
문자열의 끝 부분에 있으면 단어의 끝 부분에서 일치 항목을 찾습니다.


예를 들어, 다음 식에서는 Chapter 단어에서 ter 문자열이 단어 경계 앞에 나타나므로 ter 문자열을 찾습니다.

	/ter\b/ 

다음 식에서는 Chapter에서 사용하는 apt 문자열은 찾지만 aptitude에서는 찾지 않습니다.

	/\Bapt/ 

apt 문자열은, Chapter 단어의 비단어 경계에서 사용하고
aptitude 단어의 경우, 단어 경계에서 사용합니다.


\B 비단어 경계 연산자의 경우, 일치 항목이 단어의 시작 부분이나 끝 부분에 있는지에 상관없으므로
위치는 중요하지 않습니다.




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

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

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