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