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

正規表現で使用される文字には、他の状況では意味が完全に異なるものがあります。たとえば、正規表現ではドット(.)は任意の 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

バックスラッシュを使用して、任意の特殊文字をエスケープし、それを文字通り解釈するようにします。たとえば、次のとおりです。

  • \\(バックスラッシュをエスケープ)
  • \[(ブラケットをエスケープ)
  • \{(中括弧をエスケープ)
  • \.(ドットをエスケープ)
この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。