error_regex en C++

regex_error está presente dentro del encabezado «regex» y dentro de la clase regex_error; . Nos ayuda a conocer los errores que se arrojan durante la ejecución del programa, define el tipo del objeto de excepción en la biblioteca de expresiones regulares, también describe un error en la construcción o uso del objeto basic_regex. Desempeña un papel importante para construir un objeto que se usa para contener el error de valor y esto se hereda de std::Exception

Hay trece tipos de errores que se enumeran a continuación:

BANDERAS ERRORES
error_collate Estas expresiones tienen nombres de elementos que tienen una intercalación no válida.
error_ctype Estas expresiones tienen un nombre de clase de carácter no válido.
error_stack Si no hay suficiente memoria para determinar si las expresiones regulares pueden coincidir con una secuencia de caracteres determinada.
error_espacio Esto ocurre para convertirse en una máquina de estados finitos cuando la memoria es insuficiente.
error_badrepeat Contiene un especificador de repetición ( *?+{) que no fue precedido por una expresión regular válida.
error_complejidad La complejidad de un intento de coincidencia con una expresión regular superó un nivel preestablecido
rango_error cuando contiene un rango de caracteres no válido.
error_badbrace La expresión contiene un rango no válido entre llaves { y }.
error_brace La expresión contiene llaves no coincidentes { y }.
error_paren La expresión contiene paréntesis que no coinciden ( y ).
error_brack La expresión contiene corchetes que no coinciden ([ y ]).
error_backref La expresión exceptúa la referencia inversa no válida.
error_escape La expresión no permite ningún carácter de escape no válido ni un escape final.
error_escape La expresión no permite ningún carácter de escape no válido ni un escape final.

A continuación se muestra un programa simple que demuestra el error de expresión regular.

Programa 1:

// Program to demonstrate the error
int main()
{
#include <iostream>
#include <regex>
  
    int main()
    {
        try {
            std::regex re("[1-9][0");
        }
  
        catch (const std::regex_error& err) {
            std::cout << "There was a regex_error caughted: " 
            << err.what() << '\n';
            if (err.code() == std::regex_constants::error_brack) {
                std::cout << "The code gives an error_brack\n";
            }
        }
    }
    return 0;
}

Producción:

regex_error caught: Unexpected character in bracket expression.
        The code gives an error_brack

Programa 2:

// Program to demonstrate no error
#include <iostream>
#include <regex>
  
int main()
{
    try {
        std::regex re("[A-Z][bcd] ");
    }
  
    catch (const std::regex_error& er) {
        std::cout << "regex_error caught: "
        << er.what() << '\n';
        if (er.code() == std::regex_constants::error_brack) {
            std::cout << "The code was this is the error error_brack\n";
        }
    }
}

Nota: No hay salida porque no hay ningún error.

Publicación traducida automáticamente

Artículo escrito por Pushpanjali chauhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *