Некоторые символы в регулярных выражениях используются совсем не так, как в другом контексте. Например, точка (.) в регулярном выражении означает "любой символ". В обычном тексте это знак, который ставится в конце предложения. А в 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
Всегда добавляйте обратную косую черту перед специальным символом, если требуется интерпретировать его как обычный. Примеры:
- \\ (интерпретируется как обратная косая черта);
- \[ (интерпретируется как квадратная скобка);
- \{ (интерпретируется как фигурная скобка);
- \. (интерпретируется как точка).