점 (.) 및 백슬래시 ()

일부 문자는 정규 표현식에서 하나의 의미를 갖지만 다른 컨텍스트에서는 완전히 다른 의미를 갖습니다. 예를 들어 정규 표현식에서 점 (.)은 임의의 한 문자와 일치하는 데 사용되는 특수문자입니다. 문어에서 마침표 (.)는 문장의 끝을 나타내는 데 사용됩니다. 수학에서 소수점 (.)은 숫자의 정수 부분을 소수 부분과 구분하는 데 사용됩니다.

정규 표현식은 먼저 정규 표현식의 컨텍스트에서 특수문자를 평가합니다. 표현식에 점이 있으면 임의의 한 문자와 일치합니다.

예를 들어 정규 표현식 1.은 다음 항목과 일치합니다.

  • 11
  • 1A

정규 표현식 1.1은 다음 항목과 일치합니다.

  • 111
  • 1A1

IP 주소를 정규 표현식으로 제공하면 예측할 수 없는 결과가 발생합니다. 예를 들어 정규 표현식 0.0.0.0은 다음 항목과 일치합니다.

  • 0102030
  • 0a0b0c0

정규 표현식을 사용하여 원래 컨텍스트에서 점을 IP 주소의 여러 부분을 구분하는 구분 기호로 식별하고 (다른 문자와 일치하는 데 사용되는 특수문자가 아님) 성공적으로 사용하려면 해당 효과에 대한 신호를 제공해야 합니다. 백슬래시 (\)가 그 신호입니다. 정규 표현식에 백슬래시가 있으면 다음 문자를 리터럴로 해석해야 함을 인식합니다. IP 주소 0.0.0.0과 일치하는 정규 표현식은 다음과 같습니다.

0\.0\.0\.0

백슬래시를 사용하여 특수문자를 이스케이프 처리하고 리터럴로 해석합니다. 예를 들면 다음과 같습니다.

  • \\ (백슬래시를 이스케이프 처리함)
  • \[ (대괄호를 이스케이프 처리함)
  • \{ (중괄호를 이스케이프 처리함)
  • \. (점을 이스케이프 처리함)