일부 문자는 정규 표현식에서 한 가지 의미를 갖지만 다른 컨텍스트에서는 완전히 다른 의미를 갖습니다. 예를 들어 정규 표현식에서 점 (.)은 하나의 문자와 일치하는 데 사용되는 특수문자입니다. 서면 언어에서는 마침표 (.)를 사용하여 문장의 끝을 나타냅니다. 수학에서 소수점 (.)은 숫자의 정수 부분과 소수 부분을 구분하는 데 사용됩니다.
정규 표현식은 먼저 정규 표현식의 컨텍스트에서 특수 문자를 평가합니다. 표현식에 점이 있으면 모든 문자와 일치합니다.
예를 들어 정규 표현식 1.
는 다음과 일치합니다.
- 11
- 1A
정규 표현식 1.1
는 다음 항목과 일치합니다.
- 111
- 1A1
IP 주소를 정규 표현식으로 제공하면 예측할 수 없는 결과가 발생합니다. 예를 들어 정규 표현식 0.0.0.0
는 다음과 일치합니다.
- 0102030
- 0a0b0c0
정규 표현식을 사용하여 원래 컨텍스트에서 점을 IP 주소의 여러 부분을 구분하는 구분자 (다른 문자와 일치하는 데 사용되는 특수문자가 아님)로 식별하려면 해당 효과를 나타내는 신호를 제공해야 합니다. 백슬래시 (\
)가 바로 그 신호입니다. 정규 표현식에서 백슬래시를 만나면 다음 문자를 문자 그대로 해석해야 한다고 인식합니다. IP 주소 0.0.0.0
와 일치하는 정규 표현식은 다음과 같습니다.
0\.0\.0\.0
백슬래시를 사용하여 특수문자를 이스케이프 처리하고 문자 그대로 해석합니다. 예를 들면 다음과 같습니다.
\\
(백슬래시 이스케이프)\[
(괄호 이스케이프)\{
(중괄호 이스케이프)\.
(점을 이스케이프)