ไลบรารี regex มีวิธีการและคุณลักษณะต่างๆ ที่เกี่ยวข้องกับนิพจน์ทั่วไป ที่นี่เราจะเห็น regex_errors บางส่วน มีอยู่ในไลบรารี regex ด้วย ระหว่างดำเนินการนิพจน์ทั่วไป เราได้รับข้อผิดพลาดบางอย่าง ข้อผิดพลาดดังกล่าวถูกกล่าวถึงที่นี่
ตั้งค่าสถานะ | ข้อผิดพลาด |
---|---|
error_colate | ใน Regex ชื่อที่มีการเรียงไม่ถูกต้อง |
error_ctype | ใน Regex มีชื่อคลาสอักขระที่ไม่ถูกต้อง |
error_stack | หน่วยความจำไม่เพียงพอที่จะระบุว่า regex สามารถจับคู่ได้หรือไม่ |
error_space | แปลงเป็น Finite State Machine เมื่อหน่วยความจำไม่เพียงพอ |
error_badrepeat | สตริงมีตัวระบุการทำซ้ำ ( *?+{) ที่ไม่ได้นำหน้าด้วยนิพจน์ทั่วไปที่ถูกต้อง |
error_complexity | ความซับซ้อนของความพยายามจับคู่กับ regex เกินระดับที่กำหนดไว้ล่วงหน้า |
error_range | มีช่วงอักขระที่ไม่ถูกต้อง |
error_badbrace | regex มีวงเล็บปีกกาที่ไม่ตรงกัน { และ }. |
ข้อผิดพลาด_รั้ง | regex มีช่วงที่ไม่ถูกต้องระหว่างวงเล็บปีกกา { และ } |
error_paren | regex มีวงเล็บไม่ตรงกัน ( และ ) |
error_brack | regex มีวงเล็บไม่ตรงกัน ([ และ ]) |
error_backref | นิพจน์ทั่วไปยกเว้นการอ้างอิงกลับที่ไม่ถูกต้อง |
error_escape | regex ไม่อนุญาตอักขระที่ใช้ Escape ที่ไม่ถูกต้อง หรือการ 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