정규식 라이브러리에는 정규식과 관련된 다양한 메서드와 기능이 있습니다. 여기에서 regex_errors를 볼 수 있습니다. 이것들은 regex 라이브러리에도 있습니다. 일부 정규식을 실행하는 동안 몇 가지 오류가 발생합니다. 그 오류는 여기에 언급되어 있습니다.
플래그 | 오류 |
---|---|
error_collate | 정규식에서 데이터 정렬이 잘못된 이름입니다. |
오류_ctype | 정규식에 잘못된 문자 클래스 이름이 있습니다. |
error_stack | 정규식을 일치시킬 수 있는지 여부를 판별하는 데 메모리가 충분하지 않습니다. |
error_space | 메모리가 부족할 때 유한 상태 기계로 변환 |
오류_badrepeat | 문자열 앞에 유효한 정규 표현식이 없는 반복 지정자( *?+{)가 있습니다. |
오류_복잡도 | 정규식에 대해 시도한 일치의 복잡성이 사전 설정된 수준을 초과했습니다. |
오류_범위 | 잘못된 문자 범위가 포함되어 있습니다. |
error_badbrace | 정규식에 일치하지 않는 중괄호 { 및 }가 있습니다. |
error_brace | 정규식에 중괄호 {와 } 사이에 잘못된 범위가 있습니다. |
error_paren | 정규식에 일치하지 않는 괄호( 및 )가 있습니다. |
error_brack | 정규식에 일치하지 않는 대괄호([ 및 ])가 있습니다. |
error_backref | 정규식은 유효하지 않은 역참조를 제외합니다. |
error_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의 코드입니다.