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