РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
430 of 815 menu

Класс regex_error

Класс regex_error является наследником класса std::runtime_error и используется библиотекой <regex> для сообщения об ошибках, возникших при работе с регулярными выражениями. Исключение может быть выброшено как на этапе компиляции шаблона регулярного выражения (например, при создании объекта std::regex), так и на этапе его выполнения (например, при вызове std::regex_match или std::regex_search с флагом std::regex_constants::match_any). Метод code возвращает объект типа std::regex_constants::error_type, который указывает на конкретную причину ошибки.

Синтаксис

#include <regex> class regex_error : public std::runtime_error { public: explicit regex_error(std::regex_constants::error_type e); std::regex_constants::error_type code() const noexcept; };

Пример

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

#include <iostream> #include <regex> using namespace std; int main() { try { regex re("[abc"); cout << "OK" << endl; } catch (const regex_error& e) { cout << "Error: " << e.what() << endl; cout << "Code: " << e.code() << endl; } return 0; }

Результат выполнения кода:

"Error: regex_error" "Code: 4"

Пример

Давайте обработаем ошибку и выведем её текстовое описание в зависимости от кода, возвращённого методом code:

#include <iostream> #include <regex> using namespace std; int main() { try { regex re("(abc"); cout << "OK" << endl; } catch (const regex_error& e) { cout << "Caught regex_error" << endl; if (e.code() == regex_constants::error_paren) { cout << "Unmatched parenthesis" << endl; } else if (e.code() == regex_constants::error_brack) { cout << "Unmatched bracket" << endl; } else { cout << "Other error" << endl; } } return 0; }

Результат выполнения кода:

"Caught regex_error" "Unmatched parenthesis"

Смотрите также

  • класс regex,
    который представляет регулярное выражение
  • функция regex_match,
    которая проверяет соответствие строки шаблону
  • функция regex_search,
    которая ищет первое вхождение шаблона в строке
  • функция regex_replace,
    которая заменяет вхождения шаблона в строке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить