본문으로 건너뛰기

위치 찾기

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