regex_error尝试做简单的事情(如 [:d igit:] 或 d)时被抛出

regex_error being thrown when trying to do simple things like [:digit:] or d

本文关键字:igit error 简单的事 regex      更新时间:2023-10-16

每次我像这样将[:digit:]放入正则表达式时:regex r("[:digit:]")它都会抛出异常,.what()只是返回regex_error而不是对错误的描述性、有意义的解释。当我尝试regex r("\d")时也会发生同样的事情。当我尝试regex r("d")编译器说d是一个陌生的字符转义序列时。顺便说一下,我在代码::块中。这是我的代码:

#include <regex>
#include <iostream>
using namespace std;
int main() 
{
   regex r("d"); //and or r("[:digit:]")
   string i = "5";
   if(regex_match(i,r))
       {
           cout << "Integer";
       }
   return 0;
}

在获得较新版本的Code::Blocks和MinGW GCC编译器套件后,它就可以工作了。

附言下载 Code::Blocks 后尝试设置编译器时,我总是遇到错误。我必须转到Global compiler settings并单击Reset defaults,以便它自动检测我的编译器。如图所示。

相关文章: