| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Boost и UnicodeString |
| Автор: Валерия 25.11.2010, 04:23 |
| Насколько я поняла, boost regex работает с std::string, но не работает с UnicodeString. Нашла как можно отконвертировать std::string в UnicodeString. Но вот как обратно отконвертировать UnicodeString в std::string не могу найти. Какой самый простой вариант? |
| Автор: Alexeis 25.11.2010, 07:19 |
| Валерия, и туда и обратно через .c_str() . Кстати я бы рекомендовал использовать не std::string, а std::wstring . Буст умеет работать с обоими строками. Да и вообще скорее всего он насчитан на base_string<> |
| Автор: Валерия 25.11.2010, 12:08 | ||||||
Вот так работает:
Вот так не работает:
Пишет:
|
| Автор: xvr 25.11.2010, 12:33 | ||
А так:
|
| Автор: Валерия 25.11.2010, 14:45 | ||||
Вот так работает Но не работает, если нужно сохранить найденное:
Пишет:
|
| Автор: xvr 25.11.2010, 15:36 | ||||
|
| Автор: Валерия 25.11.2010, 16:48 | ||
Супер Теперь почти работает как надо:
Я использую знак вопроса в регулярка, чтобы сделать поиск "жадным" Но в результате в what[1].first оказываеться не "123" а "123' abb='321'" |
| Автор: xvr 25.11.2010, 17:27 | ||||||
И еще учтите (я лично наступал на эти грабли) - regex_search рассовывает в what указатели на ОРИГИНАЛЬНУЮ строку, переданную первым параметром в regex_search. Поэтому она должна быть валидна и после вызова regex_search. Т.е. вариант
|
| Автор: Валерия 25.11.2010, 17:36 |
Спасибо! Вот так работает суперски |