Ponto (.) e barra invertida (\)

Alguns caracteres têm um significado em expressões regulares e significados completamente diferentes em outros contextos. Por exemplo, em expressões regulares, o ponto (.) é um caractere especial usado para corresponder a qualquer caractere. Na linguagem escrita, o ponto final (.) é usado para indicar o fim de uma frase. Em matemática, o ponto decimal (.) é usado para separar a parte inteira de um número da parte fracionária.

As expressões regulares primeiro avaliam um caractere especial no contexto delas: se a expressão encontrar um ponto, ela vai corresponder a qualquer caractere.

Por exemplo, a expressão regular 1. corresponde ao seguinte:

  • 11
  • 1A

A expressão regular 1.1 corresponde ao seguinte:

  • 111
  • 1A1

Se você fornecer um endereço IP como uma expressão regular, vai receber resultados imprevisíveis. Por exemplo, a expressão regular 0.0.0.0 corresponde ao seguinte:

  • 0102030
  • 0a0b0c0

Para usar expressões regulares e identificar o ponto no contexto original como um separador das diferentes partes do endereço IP (e não como um caractere especial usado para corresponder a qualquer outro caractere), você precisa fornecer um indicador para esse efeito. A barra invertida (\) é esse indicador. Quando uma expressão regular encontra uma barra invertida, ela reconhece que precisa interpretar o próximo caractere literalmente. Uma expressão regular para corresponder ao endereço IP 0.0.0.0 seria assim:

0\.0\.0\.0

Use a barra invertida para fazer o escape de qualquer caractere especial e interpretá-lo literalmente. Por exemplo:

  • \\ (faz o escape da barra invertida)
  • \[ (escapa do colchete)
  • \{ (escapa a chave)
  • \. (escapa o ponto)