Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Регулярные выражения


Автор: Lazin 14.6.2009, 12:53
Добрый день.
У меня возникла следующая проблема. Допусти есть массив char* data, содержащий текст. Я в нем ищу с помощью рег. выражения подстроку "blablabla$", то-есть моя подстрока всегда находится в самом конце строки. Затем, мне нужно удалить эту подстроку, для чего достаточно записать туда 0. Но, библиотеки регулярных выражений так не работают, к примеру boost::regex не позволяет изменить оригинальную строку, вместо этого boost::regex_replace копирует данные. Как можно это обойти?

Автор: zim22 14.6.2009, 13:11
Цитата(Lazin @  14.6.2009,  12:53 Найти цитируемый пост)
Как можно это обойти?

я с бустом не работал, но:
он случайно не возвращает итератор на начало/конец строки? можно было бы туда '\0' записать smile

Автор: jonie 14.6.2009, 19:17
ну как минимум PCRE возвращает массив смещений, по которым элементарно поставить \0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)