2012-05-31 52 views

回答

2

我找到了解決辦法。

boost :: match_results的每個元素,在我的情況下,std :: string :: const_iterator的boost :: match_results具有屬性first和second,它們相應地指向搜索字符串中此submatch的開始和結束迭代器。所以,你可以使用迭代器或通過他們STD轉換爲指數::距離()

std::string::const_iterator start, end; 
boost::match_results<std::string::const_iterator> what; 
start = searchString.begin(); 
end = searchString.end(); 

if(boost::regex_search(start, end, what, pattern)) 
    { 
     std::string::const_iterator beg = what["namedGroup"].first; 
     std::string::const_iterator end = what["namedGroup"].second; 
     int beginIndex = std::distance(start, beg); 
    } 
相關問題