Computer >> Máy Tính >  >> Lập trình >> C ++

regex_error trong C ++

Thư viện regex có các phương thức và tính năng khác nhau liên quan đến biểu thức chính quy. Ở đây chúng ta sẽ thấy một số regex_errors. Chúng cũng có mặt tại thư viện regex. Trong quá trình thực thi một số biểu thức chính quy, chúng tôi gặp một số lỗi. Lỗi đó được đề cập ở đây.

Cờ Lỗi
error_collate Trong Regex, các tên có đối chiếu không hợp lệ.
error_ctype Trong Regex, có một tên lớp ký tự không hợp lệ.
error_stack Không đủ bộ nhớ để xác định regex có thể khớp hay không.
error_space Chuyển đổi thành Máy trạng thái hữu hạn, khi bộ nhớ không đủ
error_badrepeat Chuỗi có từ chỉ định lặp lại (*? + {) không đứng trước biểu thức chính quy hợp lệ.
error_complexity Độ phức tạp của một đối sánh đã cố gắng so với regex đã vượt quá mức đặt trước
error_range Chứa phạm vi ký tự không hợp lệ.
error_badbrace regex chứa các dấu ngoặc nhọn không khớp nhau {và}.
error_brace regex chứa phạm vi không hợp lệ giữa các dấu ngoặc nhọn {và}.
error_paren regex chứa các dấu ngoặc đơn không khớp (và).
error_brack regex chứa các dấu ngoặc vuông không khớp ([và]).
error_backref regex loại trừ tham chiếu ngược không hợp lệ.
error_escape Regex không cho phép bất kỳ ký tự thoát không hợp lệ nào hoặc một ký tự thoát theo sau.

Ví dụ

#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";
      }
   }
}

Đầu ra

There is an error. The error is: Unexpected character in bracket expression.
This is the code of error_brack