Точка (.) и обратная косая черта (\)

Некоторые символы в регулярных выражениях используются совсем не так, как в другом контексте. Например, точка (.) в регулярном выражении означает "любой символ". В обычном тексте это знак, который ставится в конце предложения. А в URL она является разделителем между названиями домена и субдомена.

В регулярных выражениях специальные символы интерпретируются согласно правилам регулярных выражений. Это значит, что точка в таком выражении будет соответствовать любому символу.

Например, регулярному выражению 1. соответствуют в том числе следующие строки:

  • 11
  • 1A

Регулярному выражению 1.1 соответствуют, помимо прочего, следующие строки:

  • 111
  • 1A1

Если указать IP-адрес в качестве регулярного выражения, результаты будут непредсказуемыми. Например, регулярному выражению 0.0.0.0 соответствуют в том числе следующие строки:

  • 0102030
  • 0a0b0c0

Чтобы в регулярном выражении точка соответствовала только точке (то есть разделителю между компонентами IP-адреса), а не любому символу, необходимо поставить перед точкой обратную косую черту (\). Обратная косая черта в регулярном выражении означает, что следующий за ней специальный символ должен интерпретироваться как обычный символ. Например, чтобы регулярному выражению соответствовал только IP-адрес 0.0.0.0, оно должно быть таким:

0\.0\.0\.0

Всегда добавляйте обратную косую черту перед специальным символом, если требуется интерпретировать его как обычный. Примеры:

  • \\ (интерпретируется как обратная косая черта);
  • \[ (интерпретируется как квадратная скобка);
  • \{ (интерпретируется как фигурная скобка);
  • \. (интерпретируется как точка).
Была ли эта статья полезна?
Как можно улучшить эту статью?