2012-08-01 37 views
0

我有一些boost的regex代码,我认为应该触发。我是新来的助推器,但我知道一点正则表达式。这是我正在使用的代码。Boost :: regex_match没有触发

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语句。我试图调试到升压代码和...是...

+0

使用regex_search而不是regex_match。 – ForEveR 2012-08-01 20:59:28

回答

1

regex_match

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

regex_search

regex_search 将搜索通过一对 双向迭代器对于一个给定的正则表达式所表示的范围的算法。算法 使用各种启发式方法来减少搜索时间,只需检查匹配项是否匹配 即可开始匹配。 算法定义如下:

所以,使用boost::regex_search。例。

http://liveworkspace.org/code/fa35778995c4bd1e191c785671ab94b6

+0

修复它,谢谢。 – AlexLordThorsen 2012-08-01 21:13:28