Хорошие программисты делают простые вещи легкими, верно?
И это не значит, что документация по бусту делает вашу жизнь менее беспокойной ...
Все, что я хочу, это реализация для:
// fulfils the function of a regex matching where the pattern may match a
// substring instead of the entire string
bool search( std::string, std::string, SomeResultType )
Так что его можно использовать как:
std::string text, pattern;
SomeResultsType match;
if( search( text, pattern, match ) )
{
std::string result = match[0];
if( match[1].matched )
// where this is the second capture group, not recapturing the same group
std::string secondMatch = match[1];
}
Я хочу, чтобы мой клиентский код не был обеспокоен шаблонами и итераторами ... Я знаю, я неудачник. Поработав в течение часа над спагетти-шаблонами в документах Boost за то, что я делаю что-то настолько простое, я чувствую, что моя производительность серьезно снижается, и я не чувствую, что чему-то научилась.
boost :: regex_match делает это довольно просто с boost :: cmatch, за исключением того, что он соответствует только всей строке, поэтому я адаптировал все свои шаблоны для соответствия целым строкам, но я чувствую, что это грязный хак и предпочел бы более правильное решение. Если бы я знал, что это займет много времени, я бы застрял с regex_match
Также добро пожаловать, копия Чтение ускоренной документации для чайников
На следующей неделе в Делайте это просто и легко с надстройкой , функциональными связующими! Нет, просто шучу, я бы никому этого не сделал.
Спасибо за помощь