V6059. Odd use of special character in regular expression. Possibly, it was intended to be escaped.


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

Рассмотрим пример:

String[] arr = "Hot. Cool. Yours".split(".");

После выполнения этой строчки кода в массиве не будет ожидаемого {"Hot", " Cool", " Yours"}, а будет пустой массив. Это связано с тем, что точка является специальным символом в регулярном выражении, у которой есть свое предназначение. Чтобы сделать точку разделителем в вашей строке, нужно использовать:

String[] arr = "Hot. Cool. Yours".split("\\.");

Также анализатор предупредит, если ваше регулярное выражение будет состоять только из следующих символов:

  • "|"
  • "^"
  • "$"

Найденные ошибки

Проверено проектов
363
Собрано ошибок
13 495

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;