앵커

앵커를 사용하면 줄 또는 입력 문자열의 시작 부분이나 끝 부분 중 한 곳에 정규식을 고정할 수 있습니다. 단어의 시작 부분이나 끝 부분 또는 중간 부분과 일치하는 식을 만들 수도 있습니다.

예를 들어 er\b 식에서 \b는 단어 경계와 일치합니다. 이 식은 "never"의 "er"과 일치하지만 "verb"의 "er"과는 일치하지 않습니다.

앵커의 작동 방식

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

문자

설명

^

입력 문자열의 시작 부분에서 위치를 찾습니다. 플래그와 함께 m(여러 줄 검색) 문자를 포함할 경우 ^은 \n 또는 \r 다음의 위치도 찾습니다.

$

입력 문자열의 끝 부분에서 위치를 찾습니다. 플래그와 함께 m(여러 줄 검색) 문자를 포함할 경우 $는 \n 또는 \r 앞의 위치도 찾습니다.

\b

단어 경계, 즉 단어와 공백 사이의 위치를 찾습니다.

\B

비단어 경계를 찾습니다.

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

텍스트 줄의 시작 부분에서 텍스트를 찾으려면 정규 식의 시작 부분에서 ^ 문자를 사용합니다. 이러한 ^의 사용을 대괄호로 묶은 식 내에서의 사용과 혼동하지 마십시오.

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

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

/^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 비단어 경계 연산자의 경우 일치 항목이 단어의 시작 부분이나 끝 부분에 있는지에 상관없으므로 위치는 중요하지 않습니다.

참고 항목

기타 리소스

정규식 소개