C ++ Boost sregex_token_iterator崩溃

时间:2011-03-12 04:24:29

标签: c++ boost

我正在使用以下代码从HTML文件中获取图像文件名。

代码有点像这样:

std::tr1::regex term=(std::tr1::regex)r;
const std::tr1::sregex_token_iterator end;

for (std::tr1::sregex_token_iterator i(s.begin(),s.end(), term); i != end; ++i)
   {
     std::cout << *i << std::endl;
   }

s 是一个已声明的字符串,其中包含该文件的完整字符串。

r 是一个包含要查找的正则表达式术语的字符串。

此代码实际上确实从文件中正确检索了值,但在到达最后一个之后它崩溃了。它可能与token_iterator i有关,但我不知道是什么导致它或如何解决它。

2 个答案:

答案 0 :(得分:1)

我不知道您是否已经解决了问题,但在下面找到了我的建议:

  1. 您是否尝试将++ i更改为i ++?
  2. 你是否看过HTML文件,看看cout显示的第一个文件名实际上是文件中的第一个?
  3. 我认为cout上的第一个循环将在HTML文件中打印第二个匹配。

    如果你已经解决了,请告诉我应用的代码,我正在使用boost regex,这将有助于我解决未来可能出现的问题。

    此致

    Tchesko。

答案 1 :(得分:-1)

我真的忘记了这一点 - 我很确定这个与链接器有关的外部问题,所以很难弄明白。但代码很好。