C ++中的regex_error

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