0

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

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 语句。我尝试调试到 boost 代码,然后......是的......

4

1 回答 1

1

正则表达式匹配

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

正则表达式搜索

算法 regex_search将搜索由一对双向迭代器表示的范围以查找给定的正则表达式。该算法使用各种启发式方法来减少搜索时间,方法是仅在可以想象匹配从该位置开始时才检查匹配。算法定义如下:

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

http://liveworkspace.org/code/fa35778995c4bd1e191c785671ab94b6

于 2012-08-01T21:06:06.413 回答