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