正则表达式 赋值报错

我看的是C++ primer5th P646页例子
程序功能大致是:
  查找一串字符里面不在字符c之后的字符串ei。
逐过程调试到主程序第三行:    regex r(pattern);    
报错
程序如下:

include "stdafx.h"

include<iostream>

include<regex>

using namespace std;
int main() {

string pattern("[^c]ei");
pattern = "[[:alpha:]]*" + pattern + "[[:alpha:]]*
regex r(pattern);        //提示 有未处理的错误
smatch results;

string test_str = "receipt freind theif receive";

if (regex_search(test_str, results, r))
    cout << results.str() << endl;
return 0;

}
1.png

2.png

3.png

使用try catch后:
报错如下:
int main() {

string pattern("[^c]ei");
pattern = "[[:alpha:]]*" + pattern + "[[:alhpa:]]*";
try{
    regex r(pattern,regex::extended);        //提示 有未处理的错误
}
catch (regex_error e)
{
    cout << e.what() << "\ncode:" << e.code() << endl;
}
regex r(pattern,regex::extended);
smatch results;

string test_str = "receipt freind theif receive";

if (regex_search(test_str, results, r))
    cout << results.str() << endl;
return 0;

}

1.png

阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题