Доброго времени суток, %habrauser%!
Продолжаю разбираться с с++.
Стоит задача разобрать "сырой" POST запрос вида:
--------------------------a83ff083a93d5629
Content-Disposition: form-data; name="test"
123456
--------------------------a83ff083a93d5629
Content-Disposition: form-data; name="test2"
33333
--------------------------a83ff083a93d5629
Content-Disposition: form-data; name="test3"
777
--------------------------a83ff083a93d5629--
пытаюсь решить её следующим образом (используется boost/regex.hpp):
void match_parts_req(string * response)
{
regex expression("\"([a-zA-Z0-9_]+)\"\r\n\r\n(.*[^\r\n])\r\n");
sregex_token_iterator iter(response->begin(), response->end(), expression, 0);
sregex_token_iterator end;
cout<<"\nstart matches\n";
for( ; iter != end; ++iter ) {
cout<<"value of: \n";
cout<<*iter<<'\n';
}
cout<<"end matches\n";
}
Но, похоже, что в с++ регулярные выражения работают как-то "по-особенному", так как такая регулярка
здесь работает вполне корректно, а вот в программе выводится вся строка начиная с "test" и до конца