regex লাইব্রেরিতে রেগুলার এক্সপ্রেশন সম্পর্কিত বিভিন্ন মেথড এবং ফিচার রয়েছে। এখানে আমরা কিছু regex_error দেখব। এই এররগুলো রেজেক্স লাইব্রেরিতে রয়েছে। রেগুলার এক্সপ্রেশন এক্সিকিউট করার সময় কিছু এরর দেখা দেয়। সেগুলো নিচে তালিকাভুক্ত করা হলো।
| ফ্ল্যাগস (Flags) | এরর (Errors) |
|---|---|
| error_collate | রেজেক্সে অবৈধ কোলেশন (collation) নাম রয়েছে। |
| error_ctype | রেজেক্সে অবৈধ ক্যারেক্টার ক্লাস নাম রয়েছে। |
| error_stack | রেজেক্স মেলানো যায় কিনা তা নির্ধারণের জন্য পর্যাপ্ত মেমরি নেই। |
| error_space | ফিনিট স্টেট মেশিন-এ রূপান্তর করার সময় মেমরি অপর্যাপ্ত। |
| error_badrepeat | স্ট্রিং-এ রিপিট স্পেসিফায়ার ( *?+{) রয়েছে যা একটি বৈধ রেগুলার এক্সপ্রেশনের আগে নেই। |
| error_complexity | রেজেক্সের বিপরীতে মিলান করার জটিলতা একটি पूर्व-নির্ধারিত স্তর অতিক্রম করেছে। |
| error_range | অবৈধ ক্যারেক্টার রেঞ্জ রয়েছে। |
| error_badrace | রেজেক্সে মিসম্যাচড ব্রেস { এবং } রয়েছে। |
| error_brace | রেজেক্সে ব্রেস { এবং } এর মধ্যে অবৈধ রেঞ্জ রয়েছে। |
| error_paren | রেজেক্সে মিসম্যাচড প্যারেনথেসিস ( এবং ) রয়েছে। |
| error_brack | রেজেক্সে মিসম্যাচড ব্র্যাকেট [ এবং ] রয়েছে। |
| error_backref | রেজেক্স অবৈধ ব্যাক রেফারেন্স আশা করে। |
| error_escape | রেজেক্স কোনো অবৈধ এস্কেপড ক্যারেক্টার বা ট্রেইলিং এস্কেপ অনুমতি দেয় না। |
উদাহরণ
#include <iostream>
#include <regex>
int main() {
try {
std::regex re("[A-Z][0"); // একটি এরর রয়েছে
} 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