regex库具有与正则表达式相关的不同方法和功能。在这里,我们将看到一些regex_errors。这些也存在于正则表达式库中。在执行一些正则表达式期间,我们会遇到一些错误。这些错误在这里提到。
标志 | 失误 |
---|---|
error_collate | 在正则表达式中,名称具有无效的排序规则。 |
error_ctype | 在正则表达式中,有一个无效的字符类名称。 |
error_stack | 没有足够的内存来确定是否可以匹配正则表达式。 |
error_space | 内存不足时转换为有限状态机 |
error_badrepeat | 该字符串具有重复说明符(*?+ {),该说明符之前没有有效的正则表达式。 |
error_complexity | 尝试与正则表达式进行匹配的复杂性超过了预设水平 |
error_range | 包含无效字符范围。 |
error_badbrace | 正则表达式包含不匹配的花括号{和}。 |
error_brace | 正则表达式在括号{和}之间包含无效范围。 |
error_paren | 正则表达式包含不匹配的括号(和)。 |
error_brack | 正则表达式包含不匹配的括号([和])。 |
error_backref | 正则表达式除外无效的反向引用。 |
error_escape | 正则表达式不允许任何无效的转义字符或结尾转义。 |
#include <iostream> #include <regex> int main() { try { std::regex re("[A-Z][0"); //an error is present } catch (const std::regex_error& err) { std::cout << "There is an error. The error is: " << err.what() << '\n'; if (err.code() == std::regex_constants::error_brack) { std::cout << "This is the code of error_brack\n"; } } }
输出结果
There is an error. The error is: Unexpected character in bracket expression. This is the code of error_brack