Привет всем, писал распознавалку номеров, сделал, спеки динамично поменяли и теперь мне нужно найти не просто нужный нужный номер, а нужный номер +20 символов перед ним, искал номера вот так:
...
typedef std::wstring str;
typedef std::list<str> LPN;
typedef LPN::iterator ILPN;
...
static LPN lpn;
...
static bool regex_callback(const boost::match_results<str::const_iterator>& what)
{
lpn.push_back(what[0]);
return true;
}
...
BOOL GetNumbersFromText(str text, LPN &out_list)
{
try{
lpn.clear();
boost::wsregex_iterator m_end;
boost::wsregex_iterator mu(text.begin(), text.end(), expu);
std::for_each(mu, m_end, regex_callback);
out_list=lpn;
}
catch(...)
{
return FALSE;
}
return TRUE;
}
В этом коде зовется regex_callback столько раз сколько найдено номеров и соответственно я их перекладываю в список, а как искать позиции в тексте с которых начинаются номера, чтобы мне потом можно было отступить 20 символов от того места где начинается номер?