점 (.) 및 백슬래시 ()

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

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

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

  • 11
  • 1A

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

  • 111
  • 1A1

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

  • 0102030
  • 0a0b0c0

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

0\.0\.0\.0

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

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