2012-08-01 39 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