위치 찾기
위치 찾기(position matching)는 텍스트 문자열 안에서 반드시 일치해야 하는 위치를 지정할 때 사용합니다.
단어 경계 지정하기
\b로 단어의 경계를 지정합니다.
\b는 일반적으로 단어의 일부로 사용하는 문자(\w)와 그 외의 문자(\W) 사이에 있는 위치와 일치합니다.
완전한 단어 하나를 일치시키고자 한다면 단어 앞뒤에 \b을 붙이면 됩니다.
예시:
`\bcat\b`
`\bcat\b`
\B는 반대 기능을 합니다.
문자열 경계 정의하기
단어 경계와 기능은 비슷하지만 문자열에 대해 경계를 지정합니다.
캐럿 ^으로 문자열의 시작을, 달러 기호 $로 문자열의 마지막을 나타냅니다.
^^은 집합 안에서 [ 바로 다음에 쓰면 부정을 뜻합니다. 집합 밖에서 패턴 시작 부분에 ^을 쓰면 문자열의 시작 부분과 일치합니다.
다음 예시는 <?xml>로 시작하는지 확인합니다.
^\s*<\?xml.*?\?>
^\s*<\?xml.*?\?>
다음 예시는 </html>로 끝나는지 확인합니다.
</[Hh][Tt][Mm][Ll]>\s*$
</[Hh][Tt][Mm][Ll]>\s*$
다중행 모드 사용하기
주의
이 기능은 자바스크립트를 포함한 대부분의 정규 표현식 구현에서는 지원하지 않습니다.
다른 메타 문자의 작동을 변경하는 메타 문자 중 하나가 (?m)으로 다중행(multiline)을 지원합니다.
다중행 모드로 변경하면 정규 표현식 엔진이 줄바꿈 문자를 문자열 구분자로 강제로 인식합니다. ^은 문자열의 시작이나 줄바꿈 다음(새로운 행)에 나오는 문자열의 시작과 일치하고, $는 문자열의 마지막이나 줄바꿈 다음에 나오는 문자열의 마지막과 일치합니다.
(?m)은 항상 패턴의 맨 앞에 두어야 합니다.
예시:
자바스크립트 주석html(?m)^\s*\/\/.*$
자바스크립트 주석html(?m)^\s*\/\/.*$