Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

regex_error ใน C ++


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