我有一些提升正则表达式代码,我认为应该触发。我是新手,但我知道一点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语句。我尝试调试升级代码并且......是的......
答案 0 :(得分:1)
regex_match
算法regex_match 确定是否给定常规 表达式匹配由一对表示的所有给定字符序列 对于双向迭代器,算法定义如下, 该函数的主要用途是数据输入验证。
regex_search
算法regex_search 将搜索由一对表示的范围 给定正则表达式的双向迭代器。算法 使用各种启发式方法只需检查即可缩短搜索时间 如果比赛可以想象从那个位置开始,则匹配。该 算法定义如下:
所以,请使用boost::regex_search
。实施例。
http://liveworkspace.org/code/fa35778995c4bd1e191c785671ab94b6