Boost :: regex_match没有触发

时间:2012-08-01 20:58:03

标签: c++ regex boost

我有一些提升正则表达式代码,我认为应该触发。我是新手,但我知道一点Regex。这是我正在使用的代码。

re = boost::basic_regex<TCHAR>(_T("-+\\s+Original\\s+Message\\s+-+"), boost::regex_constants::icase);
boost::match_results<TSTRING::const_iterator> result;
if(boost::regex_match(RawBody, result, re))

这是我正在使用的测试字符串。

this is a test

-------- Original Message --------

everything under here should disappear

我的代码编译并运行,它只是不触发if语句。我尝试调试升级代码并且......是的......

1 个答案:

答案 0 :(得分:1)

regex_match

  

算法regex_match 确定是否给定常规   表达式匹配由一对表示的所有给定字符序列   对于双向迭代器,算法定义如下,   该函数的主要用途是数据输入验证。

regex_search

  

算法regex_search 将搜索由一对表示的范围   给定正则表达式的双向迭代器。算法   使用各种启发式方法只需检查即可缩短搜索时间   如果比赛可以想象从那个位置开始,则匹配。该   算法定义如下:

所以,请使用boost::regex_search。实施例。

http://liveworkspace.org/code/fa35778995c4bd1e191c785671ab94b6