读书人

关于boost:regex执行crash的有关问题

发布时间: 2012-02-29 16:44:11 作者: rapoo

关于boost::regex执行crash的问题
最近在学boost::regex,编译完库后写了个小程序,但在执行r.assign()时会crash,调试进去后发现是regex::do_assign(...)这个方法没调用进去(用VS2008按F11跟不进去),但实现跟声明都是在其头文件里的,如果实现没有被放到dll里面,按理链接也不会过,所以百思不得其解,还望高手指点,在此谢过!
#include <iostream>
#include "boost/regex.hpp"
using namespace std;
using namespace boost;

int main()
{
regex r;
r.assign("abab"); //执行此句crash
string s("cdabcdabcd");
cmatch matchs;
if(regex_match(s, r))
{
cout << "Match" << endl;
}
else
{
cout << "Unmatch" << endl;
}
return 1;
}

[解决办法]

探讨
版本问题?调不进去正常,dll中的程序是无法跟踪到的

[解决办法]
你是要这个吗?
regex H1("\\sH1(\\d{15})");
cmatch what;
if(regex_match(" H15269526990066162004-07-310407")
{
string x=what[1].str(); //就是你要的
}

读书人网 >C++

热点推荐