ไลบรารี 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