위치 찾기
위치 찾기(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*\/\/.*$