रेगुलर एक्सप्रेशन एरर्स
रेगुलर एक्सप्रेशन लाइब्रेरी में रेगुलर एक्सप्रेशन्स से संबंधित विभिन्न मेथड्स और फीचर्स होते हैं। रेगुलर एक्सप्रेशन्स को एक्जीक्यूट करते समय हमें कुछ एरर्स मिल सकते हैं। ये एरर्स std::regex_error एक्सेप्शन के रूप में फेंके जाते हैं।
सामान्य regex_error कोड्स
| एरर कोड | विवरण |
|---|---|
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 | अमान्य एस्केप्ड कैरेक्टर या ट्रेलिंग एस्केप |
उदाहरण: regex_error को पकड़ना
#include <iostream>
#include <regex>
using namespace std;
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";
}
}
return 0;
}
आउटपुट
There is an error. The error is: Unexpected character in bracket expression. This is the code of error_brack
बेस्ट प्रैक्टिसेज
- रेगुलर एक्सप्रेशन निर्माण को हमेशा try-catch ब्लॉक में लपेटें
- उपयोगकर्ता इनपुट से रेगुलर एक्सप्रेशन बनाते समय विशेष रूप से सावधान रहें
err.what()त्रुटि का मानव-पठनीय विवरण देता हैerr.code()विशिष्ट त्रुटि कोड देता है जिसेstd::regex_constantsके साथ तुलना किया जा सकता है