ドット(.)とバックスラッシュ(\)

正規表現ではある意味を持つ文字が、別のコンテキストではまったく異なる意味を持つことがあります。たとえば、正規表現では、ドット(.)は任意の 1 文字に一致させるために使用される特殊文字です。書き言葉では、ピリオド(.)は文の終わりを示すために使用されます。数学では、小数(.)は数値の整数部分と小数部分を区切るために使用されます。

正規表現は、まず正規表現のコンテキストで特殊文字を評価します。式でドットが検出されると、任意の 1 文字と一致します。

たとえば、正規表現 1. は次のものと一致します。

  • 11
  • 1A

正規表現 1.1 は次のものと一致します。

  • 111
  • 1A1

IP アドレスを正規表現として指定すると、予測できない結果が返されます。たとえば、正規表現 0.0.0.0 は次のものと一致します。

  • 0102030
  • 0a0b0c0

正規表現を使用して、元のコンテキストでドットを IP アドレスの各部分の区切り文字として(他の文字との照合に使用される特殊文字としてではなく)識別するには、その旨のシグナルを提供する必要があります。バックスラッシュ(\)がそのシグナルです。正規表現でバックスラッシュが検出されると、次の文字をリテラルとして解釈する必要があることが認識されます。IP アドレス 0.0.0.0 に一致する正規表現は次のようになります。

0\.0\.0\.0

バックスラッシュを使用して特殊文字をエスケープし、文字どおりに解釈します。例:

  • \\(バックスラッシュをエスケープ)
  • \[(かっこをエスケープ)
  • \{(中かっこをエスケープ)
  • \.(ドットをエスケープ)